【问题标题】:MVC partial view update from ajax success从 ajax 成功更新 MVC 部分视图
【发布时间】:2015-11-10 08:56:18
【问题描述】:

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

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 和 stackoverflow 是我的朋友,但没有一个解决方案奏效。

【问题讨论】:

  • 用于更新视图的代码在哪里?你希望控制器动作能做到吗?
  • 控制器正在返回一个局部视图。
  • 您需要将返回的部分加载到您的 div 中。现在该操作返回,但页面不知道如何处理它。

标签: ajax asp.net-mvc-partialview


【解决方案1】:

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

【讨论】:

  • 稍作修改就可以了 :) 谢谢 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-13
  • 1970-01-01
  • 2021-06-17
相关资源
最近更新 更多