В MVC3, как я могу переопределить TempDataProvider глобально?
Я хотел бы изменить TempDataProvider в ASP.NET применение MVC3... Я знаю, что могу сделать это на каждом контроллере, переопределив CreateTempDataProvider
... но мне было интересно, есть ли способ сделать это в 1 месте ("Global.асакс?") для всех контроллеров.
Причина в том, что мой сайт находится на облачном сервере... и я хочу реализовать шаблон Post-Redirect-Get в некоторых случаях, но я не хочу, чтобы пользователь был отправлен на другой сервер и никогда не получал его сообщение.
1 ответ:
Кажется, вы могли бы написать свой собственный ControllerFactory. Здесь вы можете затем, после извлечения контроллера из базового класса
DefaultControllerFactory
, установитьTempDataProvider
для своей реализации. Смотрите подробнее здесь.
Это, вероятно, делает то, что вам нужно, но лично я предпочел бы больше, чем следующий подход:Я считаю хорошей практикой, чтобы все ваши контроллеры наследовались от некоторого "базового" контроллера класса. Общая логика контроллера (например, переопределение
CreateTempDataProvider
может быть выполнено в 1 место.