Как обмениваться данными между действиями в одном контроллере - PullRequest
0 голосов
/ 20 мая 2011

Итак, у меня есть это:

    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 от одного действия к другому. Есть ли способ сделать это?

Ответы [ 2 ]

3 голосов
/ 20 мая 2011

Действия в 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);
}

Если возможно получить ForumID только с ThreadID, вам не нужно менять сигнатуру метода.

0 голосов
/ 20 мая 2011

asp.net mvc по-прежнему asp.net, вы можете использовать сессии, куки и т. Д. Для этого

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...