В MVC3, как я могу переопределить TempDataProvider глобально? - PullRequest
2 голосов
/ 21 мая 2011

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

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

1 Ответ

3 голосов
/ 21 мая 2011

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

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

...