MVC 4客户端validation无效

试图学习ASP.net MVC的基础知识,并且不能理解为什么我的客户端validation不起作用。

我在我的web.config文件中都有这个(1是全局1在views文件夹中)

  

我在_layout.cshtmlfile中有这个

 @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)(?=.*[az])(?=.*[AZ]).{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)
@Html.LabelFor( model => model.password) @Html.PasswordFor( model => model.password) @Html.ValidationMessageFor( model => model.password)
@Html.LabelFor( model => model.passwordConfirm) @Html.EditorFor( model => model.passwordConfirm) @Html.ValidationMessageFor( model => model.passwordConfirm)
}

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

这样的感觉应该工作 ,我认为你需要在validate.unobtrusive.min.js之前加载validate.min.js

我有一个类似的问题,唯一修复它的是手动调用

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

在我按下提交按钮之前。

我终于把它放在文件就绪回调中。

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

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

请仔细看

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

那是因为你没有在不引人注意的情况下加载jquery.validate.min.js。

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

注意:如果您使用ajax调用在’div’内动态加载’form’或’PartialView’,则需要这样做

您需要在每个页面上引用这些文件,您需要validation我的朋友!