【发布时间】:2011-01-26 09:45:09
【问题描述】:
我的模型上有一个必需的注释:
[Required(ErrorMessage = "Please choose an option")]
public bool? AnyDebts { get; set; }
我已在 web.config 中启用客户端验证:
<appSettings>
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
我在布局中引用了 jquery 脚本:
<script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-1.4.4.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-ui-1.8.6.custom.min.js")" type="text/javascript"></script>
我还需要做什么才能使客户端验证正常工作? 服务器端验证仍在工作。
编辑:
啊哈!
我发现客户端验证正在运行。
但是,具体来说,我发现客户端未验证模型属性是那些使用自定义属性进行注释的属性。 例如:
[BooleanRequiredToBeTrue(ErrorMessage = "You must agree to the statements listed")]
public bool StatementAgree { get; set; }
属性代码:
public class BooleanRequiredToBeTrueAttribute: RequiredAttribute
{
public override bool IsValid(object value)
{
return value != null && (bool)value;
}
}
这些不再是经过验证的客户端了吗?
【问题讨论】:
-
你为什么要调用 jquery 两次?
标签: validation client asp.net-mvc-3