MVC模式弹出提交

时间:2012-08-22 14:07:25

标签: asp.net-mvc popup jquery-post

这是一个独特的问题,我仍然是MVC的新手,所以我会尽力解释它。我有一个带有第三方网格的页面,其中每一行都是“公司”对象。我的视图模型是CompanyManager对象,搜索参数为字段,列表用于填充网格。用户可以选择一行进行编辑,从而弹出一个弹出窗口。网格外部的按钮也会打开相同的弹出窗口以创建新记录。

弹出窗口的内容位于部分视图AddEdit中,其模型为“公司”对象。与其他字段一起,还有另一个第三方网格,其中“联系人”作为记录。在“联系人”的第三方网格中,我可以序列化记录并在提交时传递它们。

我的问题在于提交模态弹出窗口,该窗口弹出窗口应该在成功时关闭并在公司模型(或网格中的任何联系人)验证失败时保持打开状态。进行提交的最佳方式是什么?目前,我有一个调用JavaScript函数的按钮。在这个函数中,我尝试了jquery $.submit,但由于表单发布到Index,无论如何都会关闭弹出窗口。我也尝试$.post发布到Ajax调用,但我在控制器中返回了一个JSON结果,这没有按照我的预期工作 - 它只是将JSON输出为HTML。

2 个答案:

答案 0 :(得分:1)

如果您使用JQUERY进行ajax调用,请执行以下操作:

                $.ajax({
                    type: 'POST',
                    dataType: 'json',
                    url: '/url/', //url your posting to
                    data: $('#form-addedit').serialize(), //serialize the data in your form
                    success: function (result) {

                       //hide modal
                    }
                });

您应该在'结果'中获得JSON结果。注意dataType表示'json',如果是'html',它会期望返回html。结果将被置于成功函数调用中的变量结果中,然后您可以使用变量执行所需的操作,并确定是否需要关闭模态。

另外,请确保您的控制器确实收到了ajax调用 - Request.IsAjaxRequest()

答案 1 :(得分:0)

您可以通过提交常规按钮来提交表单,就像在任何页内表单中一样。设置按钮的ID,让我们说“提交”。 然后使用jQuery和.click函数验证表单。

的内容
 $("#Submit").click(function () {
                var value = $("#your_field").val();
                if (/*check for invalid condition*/) {
                    $("#Error_message").show();
                    return false;
               return true;
            });

这应该检查您需要验证的每个字段的值。如果验证失败,请显示用户和错误消息并返回false。这可以防止执行click事件(表单提交)。如果验证检查通过,则返回true以允许将提交表单的click事件并关闭窗口。

相关问题