在另一个模态MVC中ajax post成功打开模态对话框

时间:2014-10-10 07:26:07

标签: jquery ajax asp.net-mvc

我坚持使用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 

 }

1 个答案:

答案 0 :(得分:0)

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

假设控制器名称为TempController且匹配的路由是默认路由,则需要编辑ajax调用的url和datatype部分,如下所示:

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