【发布时间】:2011-05-14 12:40:27
【问题描述】:
我只是在 ASP.NET MVC 3 的 RC 版本中测试输出缓存。
不知何故,它不尊重 VaryByParam 属性(或者更确切地说,我不确定我是否理解发生了什么):
public ActionResult View(UserViewCommand command) {
这里,UserViewCommand 有一个名为 slug 的属性,用于从数据库中查找用户。
这是我的 OutputCache 声明:
[HttpGet, OutputCache(Duration = 2000, VaryByParam = "None")]
但是,当我尝试使用不同的“slug”值(通过操纵 URL)点击 Action 方法时,它不是提供错误数据(我试图通过设计强制),而是调用 action 方法。
例如(按调用顺序)
/user/view/abc -> 使用 slug = abc 调用操作方法 /user/view/abc -> 未调用操作方法 /user/view/xyz -> 再次使用 slug = xyz 调用操作方法!它不应该因为 VaryByParam = none 而从缓存中出来吗?
另外,在这种情况下,推荐的 OutputCaching 方式是什么? (上例)
【问题讨论】:
标签: asp.net-mvc caching asp.net-mvc-3 outputcache