Как отобразить несколько частей пользовательской информации на каждой странице в ASP.NET MVC 2? - PullRequest
1 голос
/ 07 января 2011

Я создаю сайт в ASP.NET MVC 2, который позволит анонимным и зарегистрированным пользователям.Когда пользователь вошел в систему, я хочу отобразить на каждой странице несколько частей информации, связанной с этим профилем (например, родной город, любимый цвет и т. Д.).С точки зрения представления, я понимаю, как использовать главные страницы и создавать партиалы, чтобы сохранить их СУХОЙ.

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

ТакПока что мои исследования начали вести меня по пути создания базового контроллера и модели базового представления, от которых унаследуются другие контроллеры и модели представления.Но я чувствую, что упускаю что-то очевидное.Есть указатели?

Ответы [ 3 ]

5 голосов
/ 07 января 2011

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

Этот подход прекрасно работает для нас.

0 голосов
/ 07 января 2011

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

0 голосов
/ 07 января 2011

Мы используем базовый контроллер для хранения его в ViewData.

Вы также можете использовать атрибут действия на контроллере, а не наследовать от базового контроллера.

...