需要从MVC 5中的控制器操作关闭Jquery UI对话框

时间:2016-12-16 21:39:41

标签: jquery asp.net-mvc jquery-ui dialog jquery-ui-dialog

我正在构建一个网站,我在jquery ui对话框中调用部分视图。在局部视图中,有一个“保存”按钮,用于将表单上的数据提交到数据库。目前,它重定向到不同的视图。我希望它关闭对话框。我无法正确调用该函数来关闭对话框。

这是我的代码:

在视图中:

<script type="text/javascript">
            $.ajaxSetup({ cache: false });
            $(document).ready(function () {
                $(".diagSave").on("click", function (e) {
                    e.preventDefault();
                    $("<div></div>")
                    .dialog({
                        title: $(this).attr("data-dialog-title"),
                        modal: true,
                        width: 1000,
                        success: function () {
                        $('#diagSave').dialog('close');
                    }
                    })

                    .load(this.href);
                })

            });
</script>

在控制器中:

return Json(new { success = true }, JsonRequestBehavior.AllowGet);

有人可以帮助指出我是如何做到这一点的吗?

2 个答案:

答案 0 :(得分:0)

另一种方法是在jquery中处理保存点击,使用.serialize将表单集合发送到控制器,然后关闭对话框。

var formvalues = $('#yourformparentdiv form').serialize();
$.ajax({
     url: siteRoot + 'Home/YourControllerMethod',
     data: formvalues,
     async: true,
     type: "POST",
     ...

答案 1 :(得分:0)

如果你需要处理关闭并从部分视图保存,你需要在那里的点击事件中处理关闭。

$("#partialview_savebutton").click(function(e){
    var $dlg = $(this).parents(".ui-dialog");
    //save the data
    $dlg.dialog("close");
});

将内容加载到对话框中时,需要确保绑定此方法。

我通常在对话框打开例程结束时包含它。

if(typeof initDlg == 'function') initDlg();

然后绑定我的事件处理程序并在我的partialview中定义的已定义initDlg(){}中配置我需要的任何验证。