我有一個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