我有一个带有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*"));发布于 2017-05-03 22:01:34
我发现了我的问题,想把它贴出来,以防别人发现它。
基本上,我的脚本文件夹中缺少jquery.validate.js文件。我在处理jquery.validate.unobtrusive.js时遇到了另一个JS错误,这让我发现我缺少了验证文件,当我回滚jQuery时,该文件一定已经被删除了。
我做的一件事就是创建了一个新的简单的MVC站点。然后,我将Scripts文件夹中的文件与我的其他项目的脚本文件夹中的文件进行了比较。
希望这对其他人有所帮助。
https://stackoverflow.com/questions/43761460
复制相似问题