ASP.NET MVC 1 - вызов объекта Session в ViewModel - PullRequest
2 голосов
/ 08 февраля 2010

Как я могу вызвать Session в ViewModel ?, Ссылка на "Session [...]" или "HttpContext.Session [..]" не существует в этом контексте

Ответы [ 2 ]

5 голосов
/ 08 февраля 2010

попробуй

HttpContext.Current.Session[..]
5 голосов
/ 08 февраля 2010

Общая идея заключается в том, что вы не должны.

Ваш контроллер должен предоставить всю информацию, необходимую для представления.

Однако, возможно, стоит передать сеанс (или его части) вместе с ViewModel.

То, как я это делаю, у меня есть базовый класс для всех моих моделей представлений, имеющих доступ к контроллеру. Затем они могут напрямую запрашивать у контроллера конкретные объекты из сеанса, даже не открывая сеанс непосредственно представлению.

BaseView.cs

public abstract class BaseView<TModel> : SparkView<TModel> where TModel : ControllerResponse
{
    // Stuff common to all views.
}

ControllerResponse.cs (базовая модель для всех представлений)

public class ControllerResponse
{
    private BaseController controller = null;

    private ControllerResponse() { }

    public ControllerResponse(BaseController controller)
    {
        this.controller = controller;
    }

    // Here, you would place all of the methods that the BaseView should have access to.
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...