[英]Do a reload of mvc/razor partial view with javascript
在我的項目中,我從部分視圖加載了多行模塊。 所以想象一個帶有信息的小方塊網格。 所有這些都有一個彈出對話框,顯示單擊模塊的數據。
目前,當我在對話框中提交更改時,javascript 會重新加載整個頁面。 但是,這需要很長時間,我需要能夠只刷新一個對話框。
我可以想象為每種類型的模塊做一個單獨的js function,然后傳入一些數據,這樣jquery就可以找到具體的模塊,然后做一個Z2705A83A5A0659CEDA5Z345839726的數據。 但這需要我始終從 js 中插入所有數據。 而不是使用 razor 和 MVC 內置的真棒。
有誰知道在 div 中調用局部視圖的方法? 同樣在將來,我需要在間隔刷新中重新加載“一些”但不是所有模塊。 因此,為了將來的打樣目的:
我正在尋找的是這樣的:
function reloadElement(row, column, id){
var target = $("#div1");
// todo find row and column
target.html.partial("url", model); //<----- looking for something like this. cross fingers.
}
感謝 GregH 的幾個關鍵詞,這導致了一些想法。
我自己解決了,所以如果你也遇到這個問題,我是這樣解決的:
你想讓你的 controller return PartialView("somePartialViewUrl", new SomeModel())
,顯然保存 model 並依靠數據收集還不夠好,我不得不制作一個新的 model 實例還不夠好,我不得不制作 model 的新實例。
在處理事件的“點擊”中,輸入:
$.ajax({
url: "controllerName/actionName",
data: JSON.stringify({ row:1,column:2 .... }),
contentType: "application/json",
dataType: "html",
type: "POST",
success: function (partial) {
$("#div2").html(partial);
}
});
這將覆蓋“#div2”中的 html。
我確定你也可以使用$("#div2").innerHTML = partial;
或$("#div2").load("url",parameters);
可能還有許多其他方式。
完畢。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.