【问题标题】:Issue with ASP .Net MVC 2.0 CachingASP .Net MVC 2.0 缓存问题
【发布时间】: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


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2011-05-02
    • 2016-01-28
    • 1970-01-01
    • 2018-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-13
    相关资源
    最近更新 更多