Mvc Foolproof没有在mvc3上工作

时间:2013-08-06 04:05:15

标签: c# asp.net-mvc foolproof-validation

我有一个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正在运行。我在这里错过了什么?谢谢!

1 个答案:

答案 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?

大多数情况下在黑暗中拍摄,但是通过一次点击操作通常可以实现万无一失的操作。