0

MVC4を使用しています。

[Required()]検証属性で装飾された ViewModel があります。

フォームが送信されると、クライアントの検証が開始され、(検証の概要を使用して) インラインで表示されるため、すべてが正常に機能します。

インラインではなくダイアログで検証を表示するにはどうすればよいですか?

MVC 4 インターネット アプリケーション テンプレートのサンプル コードを次に示します。

public class RegisterModel
    {
        [Required]
        [Display(Name = "User name")]
        public string UserName { get; set; }

        [Required]
        [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
        [DataType(DataType.Password)]
        [Display(Name = "Password")]
        public string Password { get; set; }

        [DataType(DataType.Password)]
        [Display(Name = "Confirm password")]
        [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
        public string ConfirmPassword { get; set; }
    }


@model MvcApplication2.Models.RegisterModel
@{
    ViewBag.Title = "Register";
}

<hgroup class="title">
    <h1>@ViewBag.Title.</h1>
    <h2>Create a new account.</h2>
</hgroup>

@using (Html.BeginForm()) {
    @Html.AntiForgeryToken()
    @Html.ValidationSummary()

    <fieldset>
        <legend>Registration Form</legend>
        <ol>
            <li>
                @Html.LabelFor(m => m.UserName)
                @Html.TextBoxFor(m => m.UserName)
            </li>
            <li>
                @Html.LabelFor(m => m.Password)
                @Html.PasswordFor(m => m.Password)
            </li>
            <li>
                @Html.LabelFor(m => m.ConfirmPassword)
                @Html.PasswordFor(m => m.ConfirmPassword)
            </li>
        </ol>
        <input type="submit" value="Register" />
    </fieldset>
}

@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}

そのため、テキスト ボックスにデータを入力せずに送信ボタンをクリックすると、検証の概要の上部にエラー メッセージが表示されます。

現在、Kendo ui ダイアログを使用して、サーバーから返されたすべてのエラーを表示しています。だから私がやろうとしているのは、エラーメッセージを統一して、それらがすべて同じように表示されるようにすることです.

現在、クライアント側の検証にフックする方法を知りたいだけなので、エラーの詳細で Kendo ui ダイアログを呼び出すことができます..

ありがとう

4

2 に答える 2

0

私が必要としたのは、次のJquery検証だけでした

$(function () {
    $("form").bind("invalid-form", function (e, validator) {
        //your logic
    });
});

Kendo UI の Dan に感謝します

于 2013-08-07T22:11:18.567 に答える