Синтаксис проверки EntLib для необязательных правил поля? - PullRequest
1 голос
/ 25 февраля 2010

У меня есть поле Address2, которое является необязательным. Таким образом, если он нулевой, правила проверки не применяются. Однако, если значение существует, его длина не может превышать 255 символов.

Я играл с:

<StringLengthValidator(0, RangeBoundaryType.Inclusive, 255, RangeBoundaryType.Inclusive, MessageTemplate:="Address 2 can be between 0 and 255 characters in length.", Ruleset:="MyRules")> _

Но если его нет, я все равно получаю сообщение об ошибке.

Есть предложения?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 05 марта 2010

Для следующих атрибутов потребуется, чтобы длина строки составляла от 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 должны содержать от 5 до 255 символов, если только Address2 не имеет значения.

0 голосов
/ 25 февраля 2010

Вы должны украсить собственность с IgnoreNullsAttribute:

<IgnoreNulls>
<StringLengthValidator(0, RangeBoundaryType.Inclusive, ... )>
public string Address2 { get; set; }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...