我使用CodeFirst Entitty框架5.我有一個代表用戶的類。允許空字符串用於標記PhoneAttribute或UrlAttribute的字段
public class User
{
[Key]
public int UserId { get; set; }
[Url]
[DataType(DataType.Url)]
[Required(AllowEmptyStrings= true)]
public string WebSite { get; set; }
[Phone]
[DataType(DataType.PhoneNumber)]
[Required(AllowEmptyStrings = true)]
public string Phone { get; set; }
[Phone]
[DataType(DataType.PhoneNumber)]
[Required(AllowEmptyStrings = true)]
public string Fax { get; set; }
}
我喜歡Phone
和Url
驗證力學屬性很多,但不幸的是,當標有這些屬性的字段爲空字符串這其實我是想允許驗證失敗。 [Required(AllowEmptyStrings = true)]
似乎不適用於Phone
或Url
屬性。這似乎也適用於其他一些DataAnnotations屬性,如EmailAddress
。
有沒有辦法允許空字符串標記有這些屬性的字段?
我沒有使用模型綁定。我在寫數據導入程序,源數據包含空白的電子郵件和電話。我想我應該只將空字符串從源代碼轉換爲空值。感謝您的解釋! –
@ Nu-hin。你的DBA將在未來感謝你,如果你陷入了清理像空字符串這樣含糊不清的無用數值並將其替換爲null的習慣。空值未定義或未知。空字符串電話號碼未定義或未知。總是樂於在數年後開展工作,並在電話號碼字段中找到空白字符串,空白字符串以及始終有用的「NO PHONE NUMBER」組合。 –
這似乎相當無益。是的*在某些情況下,缺少值意味着「未知」,但「絕對空」意味着與「未知」完全不同。所以有些情況下空字符串不是「毫無意義的值」。 –