问题已解决
基本上我习惯使用Internet模板启动ASP.NET MVC4项目。但是这次我试用了Basic模板。 现在,我正在尝试手动添加jQuery验证: 我已经安装了NuGet包jQuery.validation并将其包含在我的bundleconfig和_layout文件中。
这是我的bundleconfig:
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js"));
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.unobtrusive*",
"~/Scripts/jquery.validate*"));
以下是我在_layout中包含它的方式:
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval")
以下是每个请求加载的js文件:
http://localhost:10815/Scripts/jquery-2.0.3.js
http://localhost:10815/Scripts/jquery.unobtrusive-ajax.js
http://localhost:10815/Scripts/jquery.validate.js
http://localhost:10815/Scripts/jquery.validate.unobtrusive.js
在我的控制器中,我检查是否有ModelState.IsValid,如果不是,我返回模型的视图 - 我调试了方法并确定模型状态有错误。
最后在我的视图文件中,我已经包含了:
@Html.ValidationSummary()
产生以下HTML输出:
<div class="validation-summary-valid" data-valmsg-summary="true"><ul><li style="display:none"></li>
</ul></div>
我的问题是,当控制器返回视图时,验证摘要不会改变 - 我不知道什么是错的 - 我错过了什么?
问题已解决 - 我使用了我现在关闭的ajax - 没有ajax就可以正常工作。我想验证总结没有重新加载,因此没有更新html。
答案 0 :(得分:0)
要使验证生效,您需要拥有名为Test error
编辑:
您需要在模型中放置数据注释。
public class Contact
{
[Required]
public string MobileNumber { get; set; }
}
答案 1 :(得分:0)
请参阅this回答。如果定义键,则模型中必须匹配。
答案 2 :(得分:0)
我使用的是现在关闭的ajax - 没有ajax就可以正常工作。我想验证总结没有重新加载,因此没有更新html。