【问题标题】:Rolling back jQuery 3 makes MVC client side validation fail?回滚 jQuery 3 会使 MVC 客户端验证失败?
【发布时间】:2017-05-03 13:27:27
【问题描述】:

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

【问题讨论】:

    标签: c# jquery asp.net-mvc


    【解决方案1】:

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

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

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

    希望这可以帮助其他人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多