【发布时间】:2016-11-04 17:53:17
【问题描述】:
当使用数据注释属性验证 string 属性时,有没有人知道验证字符串是一组可能值之一的方法,可能表示为数组或分隔字符串?
这个问题是更通用的,但我遇到的具体实例是一个可以包含 HTTP 方法子集的属性;具体来说,GET、POST、PUT、PATCH 和 DELETE。
在System.ComponentModel.DataAnnotations 命名空间中,我看到了RegularExpressionAttribute,我可以将其子类化并动态创建正则表达式,但想知道我是否遗漏了一些已经存在的东西。
Answer 不限于 .NET 框架。 3rd 方库甚至自定义代码都可以接受,但越接近标准(在这种情况下,即被广泛采用)越好。
谢谢
【问题讨论】:
-
请注意,数据注释是注释。他们自己不会验证任何东西。您仍然需要真正尊重注释的代码才能使某些事情发生。这适用于任何不是属性设置器实际验证传入值的解决方案。
-
如果
RegularExpressionAttribute不能满足您的需求,您可以创建实现IClientVaidatable的自定义验证属性,这将为您提供客户端和服务器端验证 The Complete Guide To Validation In ASP.NET MVC 3 - Part 2 -
@StephenMuecke -- 请参阅我的自我回答。如果您将评论更改为答案,我将接受它。
标签: c# .net asp.net-mvc data-annotations