Sim*_*one 28 asp.net asp.net-mvc jquery twitter-bootstrap asp.net-mvc-5
运行Visual Studio 2013,我使用Bootstrap创建了一个新的ASP.NET MVC(5)项目.
但是,我无法进行不显眼的客户端验证工作.
模型具有[Required]
相关属性的属性,视图具有ValidationMessageFor...
表单中每个字段的标记.
但是,提交表单会导致表单在验证消息出现之前回发到服务器.
使用NuGet,我已经安装jquery.validate
并将jquery.validate.unobtrusive
它们添加到jquery包中App_Start
.
然而它仍然顽固地发回服务器.F12开发工具显示没有JS错误/警告.
有没有其他人遇到这个问题(特别是在与MVC 5相关的SO中看不到任何内容)你有什么想法吗?
use*_*829 22
我遇到了同样的问题.解决方案是添加.js引用到母版页(_Layout.cshtml)
Gar*_*ill 22
我有同样的问题.将生成的HTML与工作的网站进行比较,我注意到在文档的最后,有这样的:
<script src="/bundles/jqueryval"></script>
Run Code Online (Sandbox Code Playgroud)
...而捆绑应该像这样扩展:
<script src="/Scripts/jquery.validate.js"></script>
<script src="/Scripts/jquery.validate.unobtrusive.js"></script>
Run Code Online (Sandbox Code Playgroud)
我查看了App_Start/BundleConfig.cs,果然,JQuery验证包尚未定义RegisterBundles
.我不得不补充:
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.validate*"));
Run Code Online (Sandbox Code Playgroud)
为什么会失踪,我不知道.我从一个新的,干净的项目开始.
当您引用未定义的包时,没有编译时错误是非常粗制滥造的.即使是永远在线的运行时错误也会比无声失败更好.浪费了这么多时间!
编辑:事实证明我的项目中没有JQuery验证脚本.我不得不通过NuGet添加它们("Microsoft JQuery Unobtrusive Validation").
fli*_*lip 14
你<add key="ClientValidationEnabled" value="true" />
在web.config中验证了吗?
否则,这提供了一个很好的概述:ASP.NET MVC 3:动态/ AJAX内容的不显眼的客户端验证所需的步骤.也适用于MVC5.