Обработка данных всего сайта в MVC Razor - PullRequest
1 голос
/ 07 июня 2011

Я видел этот вопрос, заданный в нескольких местах, и обычно ответом было «использовать ViewBag», что, я думаю, не соответствует нашему сценарию.

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

В представлениях мы наследуем от модели базового представления, но как мы можем получить доступ к этим данным на стандартных страницах, например О нас и т. Д., Которые не имеют никакой связанной модели представления? Я попытался создать частичное представление, которое передает данные через контроллер, но это не сработало

1 Ответ

1 голос
/ 07 июня 2011

Ваши основные параметры:
1. Рассмотрите возможность реализации поставщика профилей - тогда параметры будут доступны везде, используйте Фильтр действий
2. Используйте свой собственный пользовательский контекст, назначенный текущему запросу / пользователю
3. использовать базовый контроллер / базовую модель просмотра для страниц, у которых их нет
4. использовать глобальный фильтр действий
5. viewdata / session
См. Некоторые подробности по адресу:
Макет ASP.NET MVC 3 Данные ViewBag для всех дочерних представлений

, если у вас уже есть эта работа и вам нужен доступ на странице «О нас» и вы не хотите использовать другую модель представления (почему нет?)тогда будет действовать фильтр действий - если только это не обычная страница aspx, в этом случае у вас остаются опции 3/4 выше.

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