我有我的視圖模型上的屬性定義的[Phone]
數據註釋:即使需要,電話數據註釋爲什麼不起作用?
public class ContactModel : BaseModel
{
[Required(ErrorMessage = "Please enter your first and last name.")]
[MaxLength(256, ErrorMessage = "Your name is too long, the maximum is 256 character.")]
public string Name { get; set; }
[Required(ErrorMessage = "Please enter your email address.")]
[EmailAddress(ErrorMessage = "Please enter a valid email address.")]
[MaxLength(256, ErrorMessage = "Your email address is too long, the maximum is 256 character.")]
[Display(Name = "Email Address")]
public string Email { get; set; }
[Phone(ErrorMessage = "Please enter a valid phone number.")]
[Display(Name = "Phone Number")]
public string Phone { get; set; }
[Required(ErrorMessage = "Please enter your comments or request.")]
[Display(Name = "Comments or Request")]
public string Comments { get; set; }
}
但像[Email]
註解並沒有做它不驗證的格式;即使當[Required]
。例如,如果我輸入文本123
,則ModelState.IsValid
仍然是true
,因爲該屬性未驗證輸入。爲了增加對受傷的侮辱,客戶端沒有像電子郵件地址那樣發生任何事情。如果我輸入了無效的電子郵件地址,我實際上得到了JavaScript驗證 - 如預期的那樣。
發生了什麼事?
我使用Mvc 5.1.0.0,所以我已經更新到最新版本,以確保它不是特定於版本的。
是不是'123'有效數字?如果你輸入'lskafjlskj'會怎麼樣? –