我有一个字段Address2,它是可选的。因此,如果它为null,则不应用验证规则。但是,如果存在值,则其长度不能超过255个字符。
我一直在玩弄:
<StringLengthValidator(0, RangeBoundaryType.Inclusive, 255, RangeBoundaryType.Inclusive, MessageTemplate:="Address 2 can be between 0 and 255 characters in length.", Ruleset:="MyRules")> _
但如果它不存在,我仍然会收到错误。
有什么建议吗?
谢谢。
答案 0 :(得分:2)
如果指定了值(包括空字符串)或字符串为空,则以下属性将要求字符串长度介于5到255个字符之间。
<ValidatorComposition(CompositionType.Or, Ruleset:="MyRules", MessageTemplate:="Address line 2 must be between 5 and 255 characters")> _
<StringLengthValidator(5, 255, Ruleset:="MyRules")> _
<NotNullValidator(Negated:=True, Ruleset:="MyRules")> _
Public Property Address2() As String
因此,除非Address2为空,否则所有Address2字符串必须介于5到255个字符之间。
答案 1 :(得分:0)
您应该使用IgnoreNullsAttribute
:
<IgnoreNulls>
<StringLengthValidator(0, RangeBoundaryType.Inclusive, ... )>
public string Address2 { get; set; }