所以我有这样的想法:
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);
}您可能已经猜到我想将UserAccess从一个操作传递到另一个操作。有办法做到这一点吗?
发布于 2011-05-21 01:58:58
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,则不需要更改方法签名。
发布于 2011-05-21 02:40:19
asp.net mvc仍然是asp.net,您可以使用会话、cookie等来完成此操作。
https://stackoverflow.com/questions/6075404
复制相似问题