在MVC3中,如何全局覆盖TempDataProvider?

时间:2011-05-21 10:28:30

标签: asp.net-mvc-3 tempdata post-redirect-get

我想在ASP.NET MVC3应用程序中更改TempDataProvider ...我知道我可以通过覆盖CreateTempDataProvider在每个控制器上执行此操作...但我想知道是否有办法为所有控制器在1点(“Global.asax?”)中执行此操作。

我的理由是我的网站位于云端服务器上...我想在某些情况下实现Post-Redirect-Get模式,但我不希望将用户发送到另一台服务器并且永远不会他的消息。

1 个答案:

答案 0 :(得分:3)

您似乎可以编写自己的ControllerFactory。然后,您可以在从基础DefaultControllerFactory类中检索控制器后,将TempDataProvider设置为您的实现。查看更多详情here 这可能会满足您的需求,但我个人更倾向于采用下一种方法:

我发现让所有控制器继承自某些'base'控制器类是一个好习惯。通用控制器逻辑(如覆盖CreateTempDataProvider可以在一个地方完成。