ASP .Net MVC 2.0缓存问题

时间:2010-10-01 08:28:49

标签: asp.net-mvc-2 outputcache varybyparam

我在这样的Action上使用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
);

路线映射网址如:

  • example.com/site1/catalog.xml
  • example.com/site2/catalog.xml
  • example.com/whatever/catalog.xml

到目录操作。

我相信预期的结果是在第一次请求传递的每个参数后返回静态内容,但内容没有正确缓存。 我应该修改Catalog操作以使用param,然后指定VarybyParam =“none”并在MapRoute函数中添加一个带有UrlParameter.Optional的参数,或者还有其他内容在这里进行?

1 个答案:

答案 0 :(得分:0)

经过多次试验和错误,我发现最好的方法是使用:

[OutputCache(Duration = 14400, VaryByParam = "*")]

使用重定向提供参数,以便使用默认值并显示缓存内容。