我正在使用ASP MVC 4并且我同时启用了ClientValidationEnabled和UnobtrusiveJavaScriptEnabled appSettings,但是当我提交具有不显眼的验证数据属性的表单时,即使它无效也会提交。 出现验证消息但表单仍然已提交。
我的浏览器已启用JavaScript。
答案 0 :(得分:7)
确保您有以下图书馆链接
<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)
答案 1 :(得分:5)
对于主页面中的MVC4,请添加以下行
@Scripts.Render("~/bundles/jqueryval")
并确保在下面的bundles.config行中存在。
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.unobtrusive*",
"~/Scripts/jquery.validate*"));
一旦添加了jquery.unobtrusive,您将遇到以下错误。
live()函数在jquery 1.9中不再可用,已被弃用。
TypeError: $(…).live is not a function
为了解决此问题,您可以通过.On手动替换.live或仅添加nuget的测试版
Install-Package Microsoft.jQuery.Unobtrusive.Ajax -Pre