0

我有一个 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 上启用了 onubtrusive 验证:

<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正在工作。我在这里错过了什么?谢谢!

4

1 回答 1

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 验证调用吗?

这里主要是在黑暗中拍摄,但让 Foolproof 工作通常只是一个点击操作。

于 2013-11-20T09:42:16.260 回答