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