Hy!Json正在缓存不正确
我的JS正在从控制器请求一个JSON来编辑一个现有的对象,一个填充的下拉列表。
然后,视图会从我的autosuggest下拉列表中发送实际值,最后将新值与旧值进行比较并存储新值。
它就像一个人名单。当我加载页面时,ddl中有一些人员,我可以添加或删除人员。
这是我的控制器:
[HttpGet]
public JsonResult JSON(int order)
{
IEnumerable<Person> persons = dataServ.Envolvidos.GetPerson(order)
return this.Json(new { Result = persons }, JsonRequestBehavior.AllowGet);
}
而且我的Json电话:
$.getJSON("/Order/JSON", { order: $("#Id").val() }, function (data) {
...
});
一切都很好,除了由点I.E.正在缓存这个JSON,并且当我发送新的值并再次返回编辑页面时,旧值将在那里而不是新值。但新值存储在数据库中,就像应该一样。
我在Chrome和Firefox上测试过,当我编辑并再次编辑之后,它完成了一个新的json调用,并且新的值与I.E不同。
我错过了什么吗?我应该怎样做JSON结果不会被缓存?
Tks man !!!!它真的有帮助! – Thiago 2011-05-24 19:14:27
是否缓存通常更好的是服务于数据的服务,因为它知道数据陈旧之前的时间。此解决方案将强制服务的所有客户端将此行放入其客户端代码中。如果这是不可接受的,则需要修改该服务以在其响应中包括适当的头部,以向客户端指示他们不应该缓存。 – 2011-05-24 22:57:03
@Gweebz。服务器端和客户端缓存完全不同。在这种情况下,没有人强迫客户这么做。恰巧IE客户端喜欢比其他客户端更积极缓存,所以IE需要这一行代码。服务器端缓存可以并应该独立于此决策进行配置。至于用服务器端创建的头文件控制客户端缓存,我没有看到好处。它只会在服务器端和客户端代码之间建立一种紧密的耦合,您自己认为这是不好的。 – Milimetric 2011-05-24 23:05:34