我有一个jQuery $ .post回到MVC 4控制器,它将使用POST中发送的数据进行渲染并返回一个PartialViewResult。调试部分视图和控制器时,正在接收正确的数据并将其作为视图模型发送到部分视图。问题是,在分析AJAX结果中发回的HTML时,它包含了原始页面刷新中看似“缓存”的数据。
我在这里看到很多帖子都是类似的,但没有一个与我的问题相同。
我知道HTTP POST请求不会在浏览器中缓存,所以这不是问题。我还设置了设置的OutputCache属性NoStore =真等
控制器
[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]
public partial class MyController : Controller
{
...
[HttpPost]
public virtual ActionResult UpdatePartial(MyViewModel myVm)
{
return this.PartialView("My/_Partial", myVm);
}
}
JS
$('.someButton').click(function() {
$.post(myAjaxUrl, $('form').serialize(), function (data) {
$('#myContent').html(data);
});
});
使用Fiddler来捕获响应并将响应正文与浏览器中的ajax响应进行比较。 – Corneliu 2013-02-14 15:36:44
@Corneliu谢谢,他们是一样的。 – 2013-02-14 15:41:47
为你的ajax url添加一个高速缓冲存储器参数。虽然POSTs被认为没有被缓存,但在某些情况下我看到它发生了。 – BNL 2013-02-14 15:50:23