【发布时间】:2011-04-19 18:00:05
【问题描述】:
我在这样的操作上使用 OutputCache:
[OutputCache(Duration = 14400, VaryByParam = "none")]
public ContentResult Catalog()
{
return ...;
}
我在 Global.asax.cs 中的 RegisterRoutes 函数包含路由:
routes.MapRoute(
"XMLRoute", // Route name
"{site}/catalog.xml", // URL with parameters
new { controller = "Home", action = "Catalog" } // Parameter defaults
);
路由映射 url 如下:
- example.com/site1/catalog.xml
- example.com/site2/catalog.xml
- example.com/whatever/catalog.xml
到目录操作。
我相信预期的结果是在每个参数的第一次请求后返回静态内容,但内容没有正确缓存。 我应该修改 Catalog 操作以使用参数,然后指定 VarybyParam = "none" 并在 MapRoute 函数中添加带有 UrlParameter.Optional 的参数,还是这里还有其他事情发生?
【问题讨论】:
-
您能否详细说明“内容未正确缓存”?您看到了什么结果,它们与您的预期究竟有何不同?
-
对不起,我应该更清楚一点。我的意思是内容不是从缓存中检索出来的,而是为每个请求重新创建的。
标签: asp.net-mvc-2 outputcache varybyparam