首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在单个控制器中的操作之间共享数据

如何在单个控制器中的操作之间共享数据
EN

Stack Overflow用户
提问于 2011-05-21 01:13:20
回答 2查看 2.1K关注 0票数 0

所以我有这样的想法:

代码语言:javascript
运行
复制
    public ActionResult ViewForum(int ForumID)
    {
        _frmSrv = new ForumService();
        _roleSrv = new RoleService();
        //_userAccess = new UserAccess();
        var modelView = _frmSrv.GetForumIndexView(ForumID);
        TempData[CurrentUser.Name] = _roleSrv.GetUserAccessForForum(CurrentUser, ForumID);
        modelView.UserAccess = TempData[CurrentUser.Name] as UserAccess;
        return View(modelView);
    }

还有这个:

代码语言:javascript
运行
复制
    public ActionResult ViewThread(int ThreadID)
    {
        _postSrv = new PostService();
        var modelView = _postSrv.GetThreadIndexView(ThreadID);
        modelView.UserAccess = TempData[CurrentUser.Name] as UserAccess;
        return View(modelView);
    }

您可能已经猜到我想将UserAccess从一个操作传递到另一个操作。有办法做到这一点吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-21 01:58:58

ASP.NET MVC中的操作是无状态的,这意味着需要向操作传递每个请求所需的所有信息。您可以执行以下操作:

代码语言:javascript
运行
复制
public ActionResult ViewThread(int ThreadID, int ForumID)
{
    _postSrv = new PostService();
    var modelView = _postSrv.GetThreadIndexView(ThreadID);
    modelView.UserAccess = _roleSrv.GetUserAccessForForum(CurrentUser, ForumID) as UserAccess;
    return View(modelView);
}

如果可以只使用ThreadID获取ForumID,则不需要更改方法签名。

票数 3
EN

Stack Overflow用户

发布于 2011-05-21 02:40:19

asp.net mvc仍然是asp.net,您可以使用会话、cookie等来完成此操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6075404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档