【问题标题】:Opening a modal dialog upon success of ajax post in another modal MVC在另一个模态 MVC 中成功发布 ajax 后打开模态对话框
【发布时间】:2014-10-10 07:26:07
【问题描述】:

我卡在 mvc 模态对话框中,当我单击模态对话框内的按钮时,我想打开另一个模态对话框,该对话框执行 ajax 以将数据发布到呈现新对话框的操作,问题是调用已发送到动作,但它从不呈现对话框是否有另一种方法可以做到这一点 一些代码:

    function LoadRightsDialog() {
    //$("#form0").close();


    var list = [];
    var elems = document.getElementById('destiny').children;
    for (i = 0; i < elems.length; i++) {
        if (elems[i].toString() == "[object HTMLDivElement]") {
            list.push(elems[i].id);

        }

    }
    //alert(list.length)
    var json = JSON.stringify(list)
    //$.post("/DistributionList/SaveMyData/", { jsonData: jlst }
    var templateId = '<%:TempData["projectID"]%>';

    //alert(templateId)
    $.ajax({
        type: "GET",
        url: "/Temp/AddUserDialogSave",
        data: {
            jsonUser: json,
            templateId: templateId
        },
        success: function (data) {
            window.location.href = data;
           // alert(data.Result);
        },
        dataType: "json",
        traditional: true
    });
    $(".ui-dialog-content").dialog("close");
  }

调用此函数的事件

<img src="~/Content/saveDialog.png" class="box" id="box" onclick="LoadRightsDialog()" /> 

和控制器动作

public ActionResult AddRightsDialog(string jsonUser,string templateId){
return PartialView();//this loads the modal dialog 

 }

【问题讨论】:

  • 这行:return alert(data.Result) 是否真的提醒正确的 HTML?
  • 它不会提醒任何事情
  • 无论如何你都应该使用 Console.log(data.Result) - 更容易阅读输出。如果您甚至没有得到任何输出,那么您很难在没有看到更多您正在做的事情的情况下回答这个问题。
  • 好的,我添加了更多代码,请注意,模式对话框没有加载
  • 你可以尝试改变警报(data.Result);到 console.log(data);并检查开发者工具控制台(Chrome F12 > 控制台)。这有什么输出吗?

标签: jquery ajax asp.net-mvc


【解决方案1】:

操作返回的部分视图应该返回一个包含视图的 html 而不是 JSON 的字符串。此外,url 应包含正确的操作方法名称。

假设控制器名称是 TempController 并且匹配的路由是默认路由,您需要像这样编辑 ajax 调用的 url 和数据类型部分:

$.ajax({
        type: "GET",
        url: "/Temp/AddRightsDialog",
        data: {
            jsonUser: json,
            templateId: templateId
        },
        success: function (data) {
            window.location.href = data;
           // alert(data.Result);
        },
        traditional: true
    });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-30
    • 1970-01-01
    • 1970-01-01
    • 2011-09-22
    • 2015-12-14
    相关资源
    最近更新 更多