1

我在这样的动作上使用 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 操作以使用参数,然后指定 VarybyParam = "none" 并在 MapRoute 函数中添加一个带有 UrlParameter.Optional 的参数,还是这里还有其他事情发生?

4

1 回答 1

0

经过反复试验,我发现最好的方法是使用:

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

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

于 2013-07-09T09:35:32.507 回答