来自ajax成功的MVC部分视图更新

时间:2015-11-10 08:56:19

标签: ajax asp.net-mvc-partialview

在视图的主页面上,用户选择一个项目,该选择用数据填充局部视图(首先调用它)。在该局部视图中,用户还可以选择在前一个下方提供编辑局部视图的项目。这里可以添加,更新或删除新项目。
问题是:当添加新项目时,应更新第一个局部视图。我试图实现它的方法是这样的:

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!");
                    }
               }
          });
     };

这为我提供了控制器中的数据,但视图未更新。可能这不是最好的方法,我打开建议,解决方案。
我也完成了自己的工作,谷歌和stackoverflow是我的朋友,但没有一个解决方案有效。

1 个答案:

答案 0 :(得分:0)

您需要将其加载到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!");
                }
           }
      });
 };