0

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

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

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

4

2 回答 2

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 结果。请注意,如果它是“html”,则 dataType 会显示“json”,它会期望返回 html。结果将在成功函数调用中放入变量 result 中,然后您可以对变量做任何您想做的事情,并确定是否需要关闭模态框。

此外,请确保在您的控制器中,您确实收到了一个 ajax 调用 - Request.IsAjaxRequest()

于 2012-08-22T14:36:59.720 回答
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。这可以防止单击事件(表单提交)执行。如果验证检查通过,则返回 true 以允许单击事件,该事件将提交表单并关闭窗口。

于 2012-08-22T14:42:24.547 回答