所以我有这个:
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);
}
和此:
public ActionResult ViewThread(int ThreadID)
{
_postSrv = new PostService();
var modelView = _postSrv.GetThreadIndexView(ThreadID);
modelView.UserAccess = TempData[CurrentUser.Name] as UserAccess;
return View(modelView);
}
您可能已经猜到我想将用户访问从一个操作传递到另一个操作。 有办法吗?
答案 0 :(得分:3)
ASP.NET MVC中的操作是无状态的,这意味着需要为每个请求传递所需的所有信息。您可以执行以下操作:
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,则无需更改方法签名。
答案 1 :(得分:0)
asp.net mvc仍然是asp.net,你可以使用session,cookies等来做到这一点