我已经对我的模型(也用于WCF方法)使用Enterprise Library 5验证,因此我决定避免使用ASP.NET 4中的冗余验证器带有DataAnnotations的MVC。集成ASP.NET MVC验证和企业库验证
但是,似乎企业库验证器不是由MVC自动拾取的。
如果我使用MVC DataAnnotations:
[RegularExpression(MyValidationExpressions.Email, ErrorMessage = MyValidationMessages.InvalidEmailMessage)]
public virtual string Email { get; set; }
HTML包含数据-VAL-正则表达式模式和场正在验证客户端。
但是,如果使用现有的基于EL验证:
[RegexValidator(MyValidationExpressions.Email, MessageTemplate = MyValidationMessages.EmptyFieldMessage))]
public virtual string Email { get; set; }
不显示验证错误的客户端,并将生成的HTML没有任何验证属性。
我在这里错过了什么,如何强制MVC使用客户端和服务器端的现有EL验证器?
解决方案:
我接受完全转移到DataAnnotations解决方案。这是最简单的方法,它与EntLib 5和MVC 4一起工作正常。但是有一点与ValidationFactory有关 - 我必须用CreateValidator和特定标志替换CreateValidatorFromAttributes。请参阅这篇文章解释有关DataAnnotations如何与ValidationFactory工作:
CreateValidatorFromAttributes doesn't use DataAnnotations Attributes
而且DataAnnotations有[必需]属性与空字符串和仅包含空格的字符串很好的交易。与VAB有一些问题。
[Asp.Net MVC 2客户端验证实现企业库验证块]的可能重复(http://stackoverflow.com/questions/2666954/asp-net-mvc-2-client-validation-implementation-for-企业库验证) – jrummell
http://elvalweb.codeplex.com/ – Steven
相关问题http:// stackoverflow。com/questions/5619996/can-mvc-updatemodel-use-enterprise-library-vab –