我使用的是ASP MVC 4,并且启用了ClientValidationEnabled和UnobtrusiveJavaScriptEnabled appSettings,但当我提交具有不引人注目的验证数据属性的表单时,即使它无效,它也会被提交。验证消息出现,但表单仍被提交。
JavaScript在我的浏览器中被启用了。
确保有以下库链接
<script src="~/Scripts/jquery.js"></script>
<script src="~/Scripts/jquery.validate.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.js"></script>
检查您的配置。这两个应该如下所示:
<appSettings>
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
</appSettings>
别忘了添加:
@Html.ValidationMessageFor(m => m.FieldToValidate)
对于主页中的MVC4,请在行下方添加
@Scripts.Render("~/bundles/jqueryval")
并确保在bundles.config中存在以下行。
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.unobtrusive*",
"~/Scripts/jquery.validate*"));
添加jquery.uno唐突后,您将遇到以下错误。
在jquery 1.9中,live()函数不再可用,该函数已被弃用。
TypeError: $(…).live is not a function
为了解决这个问题,你可以大量替换.live with.On,或者只添加nuget 的测试版
Install-Package Microsoft.jQuery.Unobtrusive.Ajax -Pre