Данные сессии в site.master - PullRequest
       1

Данные сессии в site.master

1 голос
/ 12 января 2010

Я хочу получить значение из сеанса пользователя и отобразить его в файле site.master. Как я могу сделать это, чтобы каждая страница просмотра имела это значение? Нужно ли размещать ViewData ["MyValue"] в каждом действии контроллера? Есть ли глобальный способ сделать это в одном месте, поэтому мне не нужно иметь одинаковый код в каждом действии контроллера?

Ответы [ 2 ]

3 голосов
/ 12 января 2010

Вы можете написать атрибут фильтра действий и украсить свой контроллер им:

public class CustomFilterAttribute : ActionFilterAttribute
{
    public override void OnActionExecuted(ActionExecutedContext filterContext)
    {
        base.OnActionExecuted(filterContext);
        filterContext.Controller.ViewData["MyValue"] = "some value";
    }
}

А затем украсьте контроллер этим атрибутом:

[CustomFilter]
public class MyController: Controller
{
    // actions
}

Это гарантирует, что ViewData["MyValue"] будет установлено для всех действий, принадлежащих этому контроллеру.

0 голосов
/ 03 февраля 2010

<% = Session ["MyValue"]%> на главной странице

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