我想在ASP.NET MVC3应用程序中更改TempDataProvider ...我知道我可以通过覆盖CreateTempDataProvider
在每个控制器上执行此操作...但我想知道是否有办法为所有控制器在1点(“Global.asax?”)中执行此操作。
我的理由是我的网站位于云端服务器上...我想在某些情况下实现Post-Redirect-Get模式,但我不希望将用户发送到另一台服务器并且永远不会他的消息。
答案 0 :(得分:3)
您似乎可以编写自己的ControllerFactory。然后,您可以在从基础DefaultControllerFactory
类中检索控制器后,将TempDataProvider
设置为您的实现。查看更多详情here
这可能会满足您的需求,但我个人更倾向于采用下一种方法:
我发现让所有控制器继承自某些'base'控制器类是一个好习惯。通用控制器逻辑(如覆盖CreateTempDataProvider
可以在一个地方完成。