我有一个带Bootstrap 3的MVC应用程序。我在我的表单中添加了MVC客户端验证,它运行正常。如果有错误,它将显示错误消息并阻止回发。这是使用标准VS2015 MVC模板附带的jQuery 1.10.2。
然后我看到NuGet中的建议更新到jQuery 3并且愚蠢地我决定让它升级。这导致了JS错误并且使得我的Bootstap菜单不能用于任何客户端验证。
所以,我回到jQuery 1.10.2,这并不容易。但是,现在我的MVC客户端验证不起作用。它允许表单进行回发。我无法弄清楚为了重新开始工作需要做些什么。
这是我检查的内容:
的Web.config
<appSettings>
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
我的一个ViewModel属性
[Required(ErrorMessage = "*Required")]
public string Sequence { get; set; }
查看
<div class="col-md-3">
<label class="control-label">Sequence</label>
@Html.TextBoxFor(m => m.Sequence, new { @maxlength = "6", @class = "form-control", autofocus = "autofocus" })
@Html.ValidationMessageFor(m => m.Sequence, null, new { @class = "text-danger" })
</div>
我的_Layout.cshtml的底部
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/bundles/bootstrap")
@RenderSection("scripts", required: false)
BundleConfig.cs
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js",
"~/Scripts/DigitalBrushMaskedInput.min_1.4.1.js"));
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.validate*"));
答案 0 :(得分:0)
发现我的问题并希望发布,以防其他人遇到它。
基本上我错过了我的Scripts文件夹中的jquery.validate.js文件。我正在处理jquery.validate.unobtrusive.js的另一个JS错误,这让我发现我错过了在回滚jQuery时必须删除的验证文件。
我做的一件事是创建了一个新的简单MVC网站。然后,我将Scripts文件夹中的文件与我在其他项目的scripts文件夹中的文件进行了比较。
希望这可以帮助其他人。