在jQuery UI对话框中显示MVC3非侵入式验证摘要错误

| 我正在寻找在jQuery UI对话框中显示MVC3的不显眼的ValidationSummary错误。具体来说,我希望能够有一种“现场” \0ѭ般的体验。就是说,每当MVC3客户端验证显示(第一次)或更新(重复犯规)the1ѭ元素时,我都希望结果显示在jQuery UI对话框中。 我目前有一些类似的东西
@Using Html.BeginForm(\"Action\", \"Controller\", FormMethod.Post, New With {.id = \"MyForm\"})
    @Html.ValidationSummary()
...

$(\'#MyForm\').submit(function () {
    if (!$(this).valid()) {
        $(\'.validation-summary-errors\').dialog(...);
        return false;
    }
});
但这对我来说并不对。 感觉我应该能够加入验证框架并得到验证完成的通知,并且现在显示了一个错误摘要或使用错误进行了更新。然后使用该事件,对现在显示/更新的“ 1”元素进行“ 3”处理。有这样的事吗?还是有其他建议?     
已邀请:
        所以这就是我最终做的方式。我没有找到太多文档,但是做了足够的JS挖掘工作来达到这一点。不知道我对此感觉如何。我确实知道我不再需要在验证调用中挂接表单的
submit
事件和“ double-up”,所以这很好。似乎该解决方案感到“神秘”(至少在我的经验不足的人看来),我本来希望(并且仍在寻找)一种感觉更加成熟的解决方案。
$(function () {
    // If there is an error element already (server side error), show it.
    showValidationSummaryDialog();

    // When the form validates, and there is an error element, show it
    $(\'#MyForm\').bind(\'invalid-form.validate\', function (error, element) {
       showValidationSummaryDialog();
    }
}

function showValidationSummaryDialog() {
    $(\'.validation-summary-errors\').dialog({
        title: \'Unable to Save\',
        close: function () {
            $(this).dialog(\'destroy\')
                           .prependTo($(\'#MyForm\')); // jQuery moves the source element out of the DOM.
                                                     // We need to put it back in its place afterwards for validation to maintain its contents.
                                                     // TODO: Is there a better way?
        }
    });
}
    
        如果有人要同时显示
ValidationSummary
ValidationSummaryDialog
,请尝试此操作。 按照@ckittel。
@using (Html.BeginForm())
{ 
    @Html.ValidationSummary()
    <div id=\"ValidationSummary\" style=\"display:none\" class=\"validation-summary-errors\">
    </div>
}


<script type=\"text/javascript\">

    function showValidationSummaryDialog() {
        $(\'#ValidationSummary\').html($(\'.validation-summary-errors\').html());

        $(\'#ValidationSummary\').dialog({
            title: \'Error\',
            modal: true
        });
    }

    $(document).ready(function () {
        $(\'form\').bind(\'invalid-form.validate\', function (error, element) {
            showValidationSummaryDialog();
        });
    });

</script>
    

要回复问题请先登录注册