簡體   English   中英

使用 javascript 重新加載 mvc/razor 部分視圖

[英]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 的幾個關鍵詞,這導致了一些想法。

我自己解決了,所以如果你也遇到這個問題,我是這樣解決的:

  1. Controller:

你想讓你的 controller return PartialView("somePartialViewUrl", new SomeModel()) ,顯然保存 model 並依靠數據收集還不夠好,我不得不制作一個新的 model 實例還不夠好,我不得不制作 model 的新實例。

  1. Javascript

在處理事件的“點擊”中,輸入:

$.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM