Asp.net mvc 4 jQuery不引人注目的验证don';行不通

Asp.net mvc 4 jQuery不引人注目的验证don';行不通,asp.net-mvc-4,unobtrusive-validation,Asp.net Mvc 4,Unobtrusive Validation,我有MVC4中的表单,它不在客户端进行验证 验证仅在服务器端进行 @using (Html.BeginForm()) { @Html.AntiForgeryToken() @Html.ValidationSummary(true) <div class="editor-label"> @Html.LabelFor(model => model.Name) </div> <div class="edito

我有MVC4中的表单,它不在客户端进行验证

验证仅在服务器端进行

@using (Html.BeginForm())
{
    @Html.AntiForgeryToken()
    @Html.ValidationSummary(true)

    <div class="editor-label">
        @Html.LabelFor(model => model.Name)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.Name)
        @Html.ValidationMessageFor(model => model.Name)
    </div>

    <div class="editor-label">
        @Html.LabelFor(model => model.Phone)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.Phone)
        @Html.ValidationMessageFor(model => model.Phone)
    </div>

    <p>
        <input type="submit" value="Send" />
    </p>
}


@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}
我还检查了web.config设置:

  <add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
页面位于_布局文件中。 脚本版本: jquery 2.0.3s和 jQuery验证插件1.11.1

所有脚本都在工作,并存在于页面的源代码中


可能是什么问题?

您可能需要告诉验证摘要不要排除属性错误:

@Html.ValidationSummary(false)

我添加了CDN脚本的链接 现在它开始工作了

在查看我的项目历史记录后,我发现由于某种原因,当我更新我的NuGet包时,它从我的项目中删除了这个脚本,然后我的客户端验证停止工作


我尝试用NuGet软件包(如“Microsoft jQuery Unobtrusive Validation”或“Microsoft jQuery Unobtrusive Ajax”)和其他类似的软件包来添加此脚本,但它并没有解决问题,因此我添加了CDN脚本,效果很好

我今天遇到了这个问题,我在bundle/jqueryval上放了3个文件:

 bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                   "~/Scripts/jquery.unobtrusive*",
                   "~/Scripts/jquery.validate.min.js",
                   "~/Scripts/jquery.validate.unobtrusive.min.js"));

给我们看看你的模型好吗?您在模型属性上添加注释了吗?谢谢您的回复。问题中添加了注释的模型您有jquery.unobtrusive和jquery.validate,是否包含基本jquery库?是的。它在_布局文件中,我测试了它是否存在于加载的页面上。如果在调用
@RenderBody()
之前将
@Scripts.Render(“~/bundles/jqueryval”)
移动到你的_布局文件中会怎么样?你确定你确实收到了错误吗?可能希望在控制器操作中调试并检查
ModelState
是否无效,是否包含您期望的错误。我在服务器端提交表单返回后收到验证错误。但不是在客户端。我想要实现的目标是它不会到达服务器端。
@Html.ValidationSummary(false)
 bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                   "~/Scripts/jquery.unobtrusive*",
                   "~/Scripts/jquery.validate.min.js",
                   "~/Scripts/jquery.validate.unobtrusive.min.js"));