ASP.NET MVC Still Submit Form中的无干扰客户端验证



我使用的是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 

最新更新