我有一个MVC3应用程序。
这是模型:
public class Customer
{
[Required]
public string Email { get; set; }
[Required]
public string Answer1 { get; set; }
[Required]
[NotEqualTo("Answer1")]
public string Answer2 { get; set; }
}
我在web.config上启用了onubtrtrive验证:
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
这是我的_layout.cshtml:
<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/mvcfoolproof.unobtrusive.js")" type="text/javascript"></script>
我的问题是MvcFoolproof无效。 mvc数据注释验证Required
正在运行。我在这里错过了什么?谢谢!
答案 0 :(得分:1)
首先,我想你已经在模型中加入了using Foolproof;
。
其次,我相信您可能也需要此脚本(以使客户端验证正常工作)<script src="/Scripts/MvcFoolproofJQueryValidation.min.js"></script>
。
第三,你是否使用NuGet添加了Foolproof包?您的packages.config
应包含<package id="foolproof" version="0.9.4517" targetFramework="net45" />
。
另外,您是否在视图中显示任何验证消息?这些是针对所需属性显示的,而不是针对NotEqualTo
属性显示的吗?
最后,您是否正确地在视图中显示所有这些属性,例如, @Html.EditorFor(model => model.Answer1)
?除非Answer2有比较的东西,否则肯定不会验证。你在表单上使用jQuery validate-call?
大多数情况下在黑暗中拍摄,但是通过一次点击操作通常可以实现万无一失的操作。