1

在我正在编写的 ASP.NET MVC 站点中,我正在按照本教程构建一个由 HttpModule 路由到的通用错误操作。在这个 Action 中,我将返回一个与应用于 HttpModule 内的响应的状态代码相对应的 View(在这样做之后,模块将请求转移到相关的 Action)。

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

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

4

1 回答 1

0

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

/Errors/404
/Errors/500

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

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

那行得通吗?

于 2010-07-06T16:50:22.487 回答