2010-02-25 34 views
1

我有一個字段Address2,它是可選的。因此如果它爲空,則不應用驗證規則。但是,如果存在值,則其長度不能超過255個字符。可選字段規則的EntLib驗證語法?

我一直在玩弄:

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

但是,如果它不存在,我還得到一個錯誤。

有什麼建議嗎?

謝謝。

回答

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 


因此,所有的地址2字符串的字符數必須5和255之間,除非地址2爲null。

0

您應該與IgnoreNullsAttribute裝飾屬性:

<IgnoreNulls> 
<StringLengthValidator(0, RangeBoundaryType.Inclusive, ...)> 
public string Address2 { get; set; } 
+0

仍然沒有去那一個。如果Address2不爲空(或空),則長度應該在5到255個字符之間,這是我熟悉的,但不是適當的屬性語法,因爲IgnoreNulls不起作用。我在這裏找到了一個討論:http://www.codeplex.com/entlib/WorkItem/View.aspx?WorkItemId=8595建議IgnoreNullsOrEmpty。 – ElHaix 2010-02-25 15:54:13