回滚jQuery 3会使MVC客户端验证失败吗?

时间:2017-05-03 13:27:28

标签: c# jquery asp.net-mvc

我有一个带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*"));

1 个答案:

答案 0 :(得分:0)

发现我的问题并希望发布,以防其他人遇到它。

基本上我错过了我的Scripts文件夹中的jquery.validate.js文件。我正在处理jquery.validate.unobtrusive.js的另一个JS错误,这让我发现我错过了在回滚jQuery时必须删除的验证文件。

我做的一件事是创建了一个新的简单MVC网站。然后,我将Scripts文件夹中的文件与我在其他项目的scripts文件夹中的文件进行了比较。

希望这可以帮助其他人。