2011-05-21 3 views
2

Я хотел бы изменить TempDataProvider в приложении ASP.NET MVC3 ... Я знаю, что могу сделать это на каждом контроллере, переопределив CreateTempDataProvider ... но мне было интересно, есть ли способ сделать это в 1 месте («Global.asax?») Для всех контроллеров.В MVC3, как мне переопределить TempDataProvider глобально?

Моя причина в том, что мой сайт находится на сервере облаков ... и я хочу реализовать шаблон Post-Redirect-Get в некоторых случаях, но я не хочу, чтобы пользователь отправлялся на другой сервер и никогда получить его сообщение.

ответ

3

Кажется, вы могли бы написать свой собственный ControllerFactory. Затем вы можете после получения контроллера с базового класса DefaultControllerFactory установить TempDataProvider в свою реализацию. См. Подробности here.
Это, вероятно, делает то, что вам нужно, но лично я предпочел бы более следующий подход:

Я считаю, это хорошая практика, чтобы иметь все контроллеры наследовать от некоторого «база» контроллера класса. Общая логика контроллера (например, переопределение CreateTempDataProvider может быть выполнено в 1 месте.

+0

Я надеялся, что мне не нужно было создавать базовый класс ... –

+0

В следующем проекте вы можете сделать это с самого начала :) – TweeZz

Смежные вопросы