Лучший способ показать информацию об учетной записи в файле макета в MVC3 - PullRequest
1 голос
/ 10 августа 2011

Я использую MVC3, и у меня есть файл макета, общий для всех моих видов. В файле макета я хотел бы показать некоторую информацию о текущем вошедшем в систему пользователе.

Я получил это сейчас, но единственный способ узнать, как это сделать, - установить некоторые поля ViewBag в методах действий и выбрать их в файле макета. Это означает, что мне придется использовать поля ViewBag из всех моих методов действия или, по крайней мере, создать метод, который их устанавливает, и вызывать этот метод из всех моих методов действия.

Есть ли какой-нибудь центральный способ сделать это? Абсолютно лучше всего сделать это один раз для файла макета в одном месте, но если нет другого варианта, одно место на контроллер может быть достаточно хорошим.

1 Ответ

7 голосов
/ 10 августа 2011

Правильный способ - вызвать Html.RenderAction() внутри файла макета, где вы хотите узнать подробности пользователя.Затем создайте подходящий метод Action где-нибудь, который считывает данные учетной записи пользователя и возвращает их как представление (частичное представление) или как необработанный html (return Content("...")).

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

Настройка ViewBag не очень хорошая идея, она не является строго типизированной и нарушает правильную схему MVC.

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