ajax 成功的 MVC 部分视图更新
MVC partial view update from ajax success
在主页面的视图中,用户 select 是一个项目,selection 用数据填充了部分视图(称之为第一部分)。在此局部视图中,用户还可以 select 一个项目,该项目在前一个视图下方提供编辑局部视图。在这里可以添加、更新或删除新项目。
问题是:当添加新项目时,第一个局部视图应该更新。我试图实现它的方法是这样的:
function addBottle() {
var code = $("#Code").val();
var desc = $("#Description").val();
var id = $("#ProjectId").val();
$.ajax({
url: "@Url.Action("AddBottleType", "Managers")",
data: { code: code, desc: desc, id: id },
type: "POST",
datatype: "text",
success: function (data) {
if (typeof data == "undefined") {
alert("Something went wrong. Sorry!");
}
if (data.Success) {
$.alert(data.Data, "Success!");
$.ajax({
url: "@Url.Action("BottleTypes", "Managers")",
data: { projectId: id },
type: "GET",
datatype: "text",
});
} else {
$.alert(data.Data, "Warning!");
}
}
});
};
这给了我控制器中的数据,但视图没有更新。可能这不是最好的方法,我正在打开建议,解决方案。
我也尽了自己的一份力量,google 并且 Whosebug 是我的朋友,但是 none 的解决方案有效。
您需要将其加载到您的 div。像这样的东西。检查控制器操作是否成功,因此您无需在前端执行 Success():
function addBottle() {
var code = $("#Code").val();
var desc = $("#Description").val();
var id = $("#ProjectId").val();
$.ajax({
url: "@Url.Action("AddBottleType", "Managers")",
data: { code: code, desc: desc, id: id },
type: "POST",
datatype: "text",
success: function (data) {
if (typeof data == "undefined") {
alert("Something went wrong. Sorry!");
}
if (data.Success) {
$.alert(data.Data, "Success!");
$("#bottleTypes").load("/Managers/BottleTypes", { projectId: id });
} else {
$.alert(data.Data, "Warning!");
}
}
});
};
在主页面的视图中,用户 select 是一个项目,selection 用数据填充了部分视图(称之为第一部分)。在此局部视图中,用户还可以 select 一个项目,该项目在前一个视图下方提供编辑局部视图。在这里可以添加、更新或删除新项目。
问题是:当添加新项目时,第一个局部视图应该更新。我试图实现它的方法是这样的:
function addBottle() {
var code = $("#Code").val();
var desc = $("#Description").val();
var id = $("#ProjectId").val();
$.ajax({
url: "@Url.Action("AddBottleType", "Managers")",
data: { code: code, desc: desc, id: id },
type: "POST",
datatype: "text",
success: function (data) {
if (typeof data == "undefined") {
alert("Something went wrong. Sorry!");
}
if (data.Success) {
$.alert(data.Data, "Success!");
$.ajax({
url: "@Url.Action("BottleTypes", "Managers")",
data: { projectId: id },
type: "GET",
datatype: "text",
});
} else {
$.alert(data.Data, "Warning!");
}
}
});
};
这给了我控制器中的数据,但视图没有更新。可能这不是最好的方法,我正在打开建议,解决方案。
我也尽了自己的一份力量,google 并且 Whosebug 是我的朋友,但是 none 的解决方案有效。
您需要将其加载到您的 div。像这样的东西。检查控制器操作是否成功,因此您无需在前端执行 Success():
function addBottle() {
var code = $("#Code").val();
var desc = $("#Description").val();
var id = $("#ProjectId").val();
$.ajax({
url: "@Url.Action("AddBottleType", "Managers")",
data: { code: code, desc: desc, id: id },
type: "POST",
datatype: "text",
success: function (data) {
if (typeof data == "undefined") {
alert("Something went wrong. Sorry!");
}
if (data.Success) {
$.alert(data.Data, "Success!");
$("#bottleTypes").load("/Managers/BottleTypes", { projectId: id });
} else {
$.alert(data.Data, "Warning!");
}
}
});
};