Mvc viewpages и пользовательские данные для всех страниц - PullRequest
1 голос
/ 25 мая 2010

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

Было бы неплохо, если бы это можно было сделать в одном месте.

Что мне нужно сделать, чтобы получить эту функциональность, даже можно ли это сделать?

Greetz, Ричард.

1 Ответ

0 голосов
/ 25 мая 2010

Самым простым (возможно, не самым лучшим) будет написать базовый класс Controller, который

1) обрабатывает одно из следующих событий для выполнения работы:

  • OnActionExecuted
  • OnActionExecuting
  • OnResultExecuted
  • OnResultExecuting

2) Устанавливает данные, которые вы хотите иметь в ViewData.

3) Используйте ViewData из ваших представлений.

4) Все ваши контроллеры должны наследоваться от вашего пользовательского базового контроллера.

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

1) Реализуйте его в ActionFilter и убедитесь, что добавили атрибут ко всем ActionMethods.

2) Используйте что-то вроде MVC Turbine, чтобы определить ActionFilter, который запускается для всех ActionMethods в вашем ASPПриложение .NET MVC.

...