在我正在编写的ASP.NET MVC站点中,我正在构建一个由HttpModule following this tutorial路由到的通用错误操作。在这个Action中,我将返回一个View,该视图对应于应用于HttpModule内部响应的状态代码(执行此操作后,模块将请求转移到相关Action上)。
除了我想实现缓存之外,这一切都很好。我不想在没有过滤/变化的情况下使用OutputCache
属性,因为这意味着页面将被缓存一次。我希望为每个可能的状态代码缓存一次页面。
是否有可能以某种方式过滤/改变OutputCacheAttribute
的属性,以便每个Response.StatusCode分别缓存?
答案 0 :(得分:0)
您目前如何处理错误操作的路由,例如:你可以:
/Errors/404
/Errors/500
所有指向完全相同的操作,并且将为您处理缓存,因为它们是独立的URL并且您将OutputCache属性一次应用于一般错误操作:
[OutputCache]
public ActionResult DisplayError(int errorCode) {
return View(errorCode.ToString());
}
那会有用吗?