MVC 4客户端验证将在对话框中显示

时间:2013-08-05 05:04:46

标签: asp.net-mvc-3 validation asp.net-mvc-4 kendo-ui unobtrusive-validation

我正在使用MVC4。

我有一个使用[Required()]验证属性修饰的ViewModel。

提交表单时,会触发客户端验证并以串联方式显示(使用验证摘要),因此一切正常。

如何在对话框中显示验证而不是内联?

以下是MVC 4 Internet应用程序模板的示例代码

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对话框。

由于

2 个答案:

答案 0 :(得分:0)

如果提交时无法提交所有@Html.ValidationMessageFor( ...,则调用会显示一个对话框并显示numberOfInvalids(),您可以检索错误及其消息,并在对话框中显示它们。

答案 1 :(得分:0)

我需要的只是以下内容,Jquery验证

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

非常感谢Dan在Kendo UI