【发布时间】:2008-11-13 22:41:28
【问题描述】:
在没有输入参数的 ActionResult 方法上应用 OutputCache 属性后,我遇到了上述错误消息 - 在这种情况下我为什么要使用 VaryByParams?这是 ASP.Net MVC 中的一个错误,还是有办法在不设置此属性的情况下使用 OutputCache?
我的大问题是,如果我必须使用 VaryByParams,如果我没有要缓存的参数,我应该输入什么值?
【问题讨论】:
在没有输入参数的 ActionResult 方法上应用 OutputCache 属性后,我遇到了上述错误消息 - 在这种情况下我为什么要使用 VaryByParams?这是 ASP.Net MVC 中的一个错误,还是有办法在不设置此属性的情况下使用 OutputCache?
我的大问题是,如果我必须使用 VaryByParams,如果我没有要缓存的参数,我应该输入什么值?
【问题讨论】:
我从来没有找到满意的答案 - 基本上,您只需要添加 VaryByParams 属性,如果您没有任何参数,请将其设置为魔术字符串“none”。
http://msdn.microsoft.com/en-us/library/system.web.ui.outputcacheparameters.varybyparam.aspx
【讨论】:
ActionResult(而不是 String您在评论中使用)。此外,您不应该将 OutputCacheAttribute none 作为参数传递 - 它是一个 C# 属性,当您将其添加到方法的开头 ([OutputCache...) 时,您已经在使用它。因此,您的操作方法应如下所示:[OutputCache(Duration=10, VaryByParams="none")] public ActionResult Index() { ... }