在为没有输入参数的ActionResult方法应用OutputCache属性后,我遇到了上述错误消息 - 为什么在这种情况下要使用VaryByParams?这是ASP.Net MVC中的bug还是有一种使用OutputCache而不设置此属性的方法?
我的重要问题是,如果我必须使用VaryByParams,在我没有参数可用于缓存时应该输入什么值?
在为没有输入参数的ActionResult方法应用OutputCache属性后,我遇到了上述错误消息 - 为什么在这种情况下要使用VaryByParams?这是ASP.Net MVC中的bug还是有一种使用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() { ... }
- Zac Seth