0
我想在包含電話號碼的模型上使用Required屬性來驗證傳入的JSON。有兩個電話號碼屬性,主要(必需)和備用。對於Alternate,我希望空字符串有效,但字符串在1到9個字符之間且超過30個字符無效。這是行不通的:如何驗證如此字符串的模型可以在10到30個字符之間,或者空 - C#ASP.NET
public class PhoneCreateModel
{
[Required(AllowEmptyStrings = false,
ErrorMessageResourceName = "PrimaryPhoneNumberRequired",
ErrorMessageResourceType = typeof(DataAnnotationMessage))]
[StringLength(30, MinimumLength = 10,
ErrorMessageResourceName = "PrimaryPhoneNumberFormat",
ErrorMessageResourceType = typeof(DataAnnotationMessage))]
public string Primary { get; set; }
[StringLength(30, MinimumLength = 10,
ErrorMessageResourceName = "AlternatePhoneNumberFormat",
ErrorMessageResourceType = typeof(DataAnnotationMessage))]
public string Alternate { get; set; }
}
...因爲它不允許Alternate是一個空字符串。我如何允許它是一個空字符串或10-30個字符之間?
不幸的是,默認的模型綁定嘗試空字符串保存爲對模型本身'null',而你要考慮它的一個空字符串。我使用了一個自定義模型聯編程序來改變這種行爲;其他人可能會在我有機會查看併發布相關信息之前發佈詳細信息... –
您可以添加一個額外屬性來處理此問題:'[DisplayFormat(ConvertEmptyStringToNull = false)]',具體取決於你使用的是什麼版本的框架。 –