代码之家  ›  专栏  ›  技术社区  ›  leora Matt Lacey

在jquery用户界面对话框中处理表单中的错误

  •  2
  • leora Matt Lacey  · 技术社区  · 14 年前

    我正在使用jquery用户界面对话框并显示一个表单:

    $("#detailView").dialog({
        resizable: false,
        height: 'auto',
        autoOpen: false,
        width: 1000,
        modal: true,
        buttons: {
            'Close': function () {
                closeModalPopup();
            }
        }
    });
    

    我的窗体中有一个按钮(而不是对话框按钮)。单击此按钮时,我使用下面的代码将Ajax发送到服务器:

     $('.button').live('click', function () {
    
        $.post('/MyController/Update', $("#myForm").serialize(), function (data) {
    
            if (data == "Update Complete") {
                closeModalPopup();
            }
            else {
                $("#detailView").html(data);
            }
        }, "html");
    });
    

    如果发布成功,我将返回“update complete”(更新完成),然后关闭jquery用户界面对话框。

    问题是,当它失败并且出现错误时,我会在控制器操作中执行此操作:

            if (!validationResult.IsValid)
            {
                validationResult.AddToModelState(ModelState, null);
                return PartialView("DetailContent", hireRequest);
            }
            else
            {
                return Content("Update Complete");
            }
    

    应该 点击javascript回调中的“else”案例,并在对话框中显示新内容,但似乎发生的情况是,部分结果的内容显示在整个底层页面上(与我想要的模式对话框相反)。

    有什么问题的建议吗?

    1 回复  |  直到 14 年前
        1
  •  1
  •   Lazarus    14 年前