想象一下帶有「編輯」鏈接的簡單用戶列表。點擊「編輯」打開一個對話框,其中包含所選用戶的詳細信息。 「細節」彈出窗口是局部視圖。將部分視圖加載到JQuery對話框中緩存問題
我在使用JQuery對話窗口打開部分視圖時遇到了部分視圖緩存問題。
我的局部視圖(注意的OutputCache屬性作爲的事情之一我試圖解決緩存問題):
[HttpGet]
[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]
public PartialViewResult EditUser(int id)
{
var userList = userRepository.GetByRole(id);
return PartialView("EditUser",userList);
}
的PartialView上述請求,然後從以下Javascript函數加載:
function editUserOpen(id) {
$.ajaxSetup({ ///// Another thing I tried to solve caching
cache: false
});
var url = "/User/PartialViewResult/" + id;
$('#user-wrap').empty().load(url, function() {
$("#dialog-edit-user").dialog({
title: "Edit User",
autoOpen: false,
height: 300,
width: 500,
modal: true
});
$('#dialog-edit-user').dialog("open");
});
}
如上所示,「dialog-edit-user」(以及「dialog-add-user」和「dialog-delete-user」)位於DOM中的「user-wrap」Div的內部。
功能上一切正常,但是當我打開一個對話框時,取消並嘗試打開其他用戶的對話框,直到頁面刷新爲止,對話框將始終包含來自最初顯示的對話框的信息。 我想到了它的緩存問題,但我跑出瞭解決方法。
如果可能,我想遠離$ .ajax({cache:false;})。html(內容)。在我看來,它比.load()慢很多。
檢查此文章:http://stackoverflow.com/questions/168963/stop-jquery-load-response-from-being-cached – Chandu 2012-07-17 18:01:52
看看上面的Javascript功能。建議已經實施,或者我沒有正確實施它? – Shenaniganz 2012-07-17 18:03:42
錯過了..... – Chandu 2012-07-17 18:05:42