MVC 4客户端验证不起作用

本文关键字:不起作用 验证 客户端 MVC | 更新日期: 2023-09-27 18:15:47

试图学习ASP.net MVC的基础知识,却不太明白为什么我的客户端验证不起作用。

我在我的两个web.config文件中都有这个(1是全局的,1在视图文件夹中(

<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />

我在_layout.cshtml文件中有这个

@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/Scripts/jquery.validate.unobtrusive.min.js")
@Scripts.Render("~/Scripts/jquery.validate.min.js")

这是我测试注册的视图模型:

public class RegisterVM
    {
        [Required(ErrorMessage="Username Required")]
        public string username { get; set; }
        [RegularExpression(@"((?=.*'d)(?=.*[a-z])(?=.*[A-Z]).{6,20})")]
        [Required(ErrorMessage="Password Required")]
        public string password { get; set; }
        [Compare("password", ErrorMessage="Passwords do not match")]
        public string passwordConfirm { get; set; }
    }

这是我的html

@using(@Html.BeginForm()){
    @Html.LabelFor( model => model.username)
    @Html.EditorFor( model => model.username)
    @Html.ValidationMessageFor( model => model.username)<br />
    @Html.LabelFor( model => model.password)
    @Html.PasswordFor( model => model.password)
    @Html.ValidationMessageFor( model => model.password)<br />
    @Html.LabelFor( model => model.passwordConfirm)
    @Html.EditorFor( model => model.passwordConfirm)
    @Html.ValidationMessageFor( model => model.passwordConfirm)<br />
    <input type="submit" value="Register" />

}

我不想在这里发帖,我读了一些与这里相关的话题,但似乎无法解决我的问题,当我点击提交时,它正在发出发帖/获取请求。

MVC 4客户端验证不起作用

感觉这应该有效,我认为您需要在validate.nobstruct.min.js 之前加载validate.min.js

我遇到了类似的问题,唯一解决的是手动调用

 $.validator.unobtrusive.parse($('form'));

在我按下提交按钮之前。

我终于把它放在文档准备回调中了。

$(function () {
    $.validator.unobtrusive.parse($('form'));
});

在您的页面中,页面底部有这两行

请仔细查看

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

这是因为您没有在不引人注目的jquery.validate.min.js之前加载jquery.vvalidate.min.jsp。

$('#divParent').load("url",
                     function () {
                     $.validator.unobtrusive.parse($('form'));}
                );

注意:如果您使用ajax调用在"div"内动态加载"form"或"PartialView",则这是必需的

你只需要在每一页上引用这些文件,你需要验证,我的朋友!

<script src="~/Scripts/jquery.validate.js"></script>