我想缓存一个动作的返回数据.我为此目的使用OutPutCacheAttribute.这是我的客户端代码:
$(document).ready(function() { $.get('@Url.Action("GetMenu","Home")',null,function(data) { parseMenu(data); }); }
这是我的服务器代码:
[HttpGet] [OutputCache(Duration = 86400,Location = OutputCacheLocation.Server)] public ContentResult GetMenu() { string jsonText = GetData(); //some code return new ContentResult { Content = jsonText,ContentType = "text/json" }; }
如您所见,我使用OutputCacheAttribute来缓存服务器响应.但它不起作用.每次加载页面时,都会调用Home / GetMenu操作.即使我直接在“localhost / Home / GetMenu”中键入浏览器的地址栏,也会调用它.我哪里弄错了?
UPD我创建了第二个动作来测试这个属性而不需要调试.这是它的代码:
[HttpGet] [OutputCache(Duration = 86400,Location = OutputCacheLocation.ServerAndClient,varyByParam = "none")] public JsonResult GetJson() { return Json(new { random = new Random().Next(100) },JsonRequestBehavior.AllowGet); }
我想如果OutputCache属性正常工作(并且我正确使用它)然后调用一次动作,我每次都得到相同的响应.但如果没有,那么我每次都会得到不同的响应,因为每次都会产生随机数.
当我多次调用此动作时,我总是收到不同的分词,例如{“random”:36},{“random”:84}等等
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。