[英]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.