jquery - 客户端验证在带有 Bootstrap 的 ASP.NET MVC5 中不起作用

标签 jquery asp.net asp.net-mvc twitter-bootstrap asp.net-mvc-5

运行 Visual Studio 2013,我使用 Bootstrap 创建了一个新的 ASP.NET MVC (5) 项目。

但是,我无法让不显眼的客户端验证正常工作。

模型在相关属性上具有 [Required] 属性, View 对于表单中的每个字段具有 ValidationMessageFor... 标记。

但是,提交表单会导致表单在验证消息出现之前回发到服务器。

使用 NuGet,我安装了 jquery.validatejquery.validate.unobtrusive 并将它们添加到 App_Start 中的 jquery 包中。

但它仍然顽固地发回服务器。 F12 开发工具没有显示 JS 错误/警告。

还有其他人遇到过这个问题吗(在 SO 中看不到任何与 MVC 5 特别相关的内容),您有什么想法吗?

最佳答案

我也遇到了同样的问题。将生成的 HTML 与正常运行的网站进行比较,我注意到文档末尾有这样的内容:

<script src="/bundles/jqueryval"></script>

...而 bundle 应该像这样展开:

<script src="/Scripts/jquery.validate.js"></script>
<script src="/Scripts/jquery.validate.unobtrusive.js"></script>

我查看了 App_Start/BundleConfig.cs,果然,JQuery 验证包尚未在 RegisterBundles 中定义。我必须添加:

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

为什么缺少这个,我不知道。我从一个新的、干净的项目开始。

当您引用未定义的包时,没有编译时错误,这非常糟糕。即使是始终存在的运行时错误也比无声的故障要好。浪费了很多时间!

编辑:结果我的项目中也没有 JQuery 验证脚本。我必须通过 NuGet(“Microsoft JQuery Unobtrusive Validation”)添加它们。

关于jquery - 客户端验证在带有 Bootstrap 的 ASP.NET MVC5 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19737907/

相关文章:

javascript - 菜单下拉并检查它是否是当前项目并重定向

javascript - Google Geocharts-在调用 json 数据时获取相同大小的标记

java - 从 JSP 调用后端 Java 类

c# - 无需数据库即可生成唯一编号

asp.net-mvc - ASP.Net MVC DefaultModelBinder 不绑定(bind) POST 上的属性

javascript - $.ajax “Uncaught TypeError: Illegal invocation”

javascript - 将函数从 iframe 附加到父窗口并获取适当的范围

c# - 用于使用参数打开 SSRS 报告新窗口的 ASP 按钮

javascript - 如何使用 Angular 2 在 POST 上启用 ASP.NET MVC 4 中的跨源请求

asp.net-mvc - Visual Studio 中的单元测试 MVC Web 应用程序和 QTAgent 问题