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我的朋友!