ASP.NET MVC:通过OutputCache属性中的HTTP状态代码过滤/变化

时间:2010-07-01 07:44:46

标签: c# asp.net asp.net-mvc caching outputcache

在我正在编写的ASP.NET MVC站点中,我正在构建一个由HttpModule following this tutorial路由到的通用错误操作。在这个Action中,我将返回一个View,该视图对应于应用于HttpModule内部响应的状态代码(执行此操作后,模块将请求转移到相关Action上)。

除了我想实现缓存之外,这一切都很好。我不想在没有过滤/变化的情况下使用OutputCache属性,因为这意味着页面将被缓存一次。我希望为每个可能的状态代码缓存一次页面。

是否有可能以某种方式过滤/改变OutputCacheAttribute的属性,以便每个Response.StatusCode分别缓存?

1 个答案:

答案 0 :(得分:0)

您目前如何处理错误操作的路由,例如:你可以:

/Errors/404
/Errors/500

所有指向完全相同的操作,并且将为您处理缓存,因为它们是独立的URL并且您将OutputCache属性一次应用于一般错误操作:

[OutputCache]
public ActionResult DisplayError(int errorCode) {
   return View(errorCode.ToString());
}

那会有用吗?