【发布时间】:2014-08-15 18:14:38
【问题描述】:
我有以下定义。
[StringLength(4, MinimumLength = 4, ErrorMessage = "Mobile Last 4 must be 4 digits.")]
public string MobileLast4 { get; set; }
我希望能够使用null 或,如果该字段确实有值,那么它的长度必须是 4 个字符。
我遇到的问题是,如果属性为 null,则验证失败。我应该使用其他属性还是需要自己滚动?
我想我可以使用可以为空的 int 和 range 属性来解决这个问题,但我还有其他不接受数字的属性。
【问题讨论】:
-
初始化为 4 个空字符
"\0\0\0\0" -
模型绑定器看到这个并转义它,所以我最终实际上得到了那个值。除了有点 hackish 你不觉得吗?
-
是的,非常骇人听闻,当您需要 4 个没有任何意义的字符时,这只是想到的第一件事。如果 [stringlength] 不支持它,您将不得不找到其他东西或无论如何破解它
-
StringLength 不强制验证:如果值留空,它不应该使验证失败。
标签: c# data-annotations asp.net-web-api2