我想在 ASP.NET MVC3 应用程序中更改 TempDataProvider ......我知道我可以通过覆盖在每个控制器上做到这一点CreateTempDataProvider
......但我想知道是否有办法在 1 点做到这一点(“全球.asax?") 适用于所有控制器。
我的原因是我的站点位于云服务器上......并且我想在某些情况下实现 Post-Redirect-Get 模式,但我不希望用户被发送到另一台服务器并且永远不会收到他的消息。
我想在 ASP.NET MVC3 应用程序中更改 TempDataProvider ......我知道我可以通过覆盖在每个控制器上做到这一点CreateTempDataProvider
......但我想知道是否有办法在 1 点做到这一点(“全球.asax?") 适用于所有控制器。
我的原因是我的站点位于云服务器上......并且我想在某些情况下实现 Post-Redirect-Get 模式,但我不希望用户被发送到另一台服务器并且永远不会收到他的消息。
看来您可以编写自己的 ControllerFactory。在这里,您可以在从基DefaultControllerFactory
类中检索控制器后,将 设置TempDataProvider
为您的实现。在此处查看更多详细信息。
这可能满足您的需要,但我个人更喜欢下一种方法:
我发现让您的所有控制器都从某个“基本”控制器类继承是一个好习惯。通用控制器逻辑(如覆盖CreateTempDataProvider
然后可以在 1 个地方完成。