我刚刚在ASP.NET MVC 3的RC版本中测试了Output Caching.
不知怎的,它不尊重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 – >未调用Action方法
/ user / view / xyz – >再次使用slug = xyz调用操作方法!是不是应该从缓存中出来,因为VaryByParam = none?
此外,在这种情况下,OutputCaching的推荐方式是什么? (上图)
解决方法
只是想添加这些信息,以帮助人们搜索:
在最新版本(ASP.NET MVC 3 RC 2)中,OutputCache行为已更改为“如预期的”:
http://weblogs.asp.net/scottgu/archive/2010/12/10/announcing-asp-net-mvc-3-release-candidate-2.aspx
方式去ASP.NET MVC团队(和师师)!你们都很棒!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。