Asp.net mvc dataannotation Проверка MaxLength не работает
Я использую asp.net mvc4 в своей модели. Я использую атрибут Maxlength, но он не работает для строки.
Только Stringlength работает, у кого такая же проблема? если возник вопрос о том, как решить проблему? он не работает для проверки моего поля
Вот мой код
(не работает)
[Required]
[MaxLength(80)]
[DisplayName("Contact Name:")]
public string ContactName { get; set; }
(рабочий)
[Required]
[StringLength(80)]
[DisplayName("Contact Name:")]
public string ContactName { get; set; }
Ответы
Ответ 1
Оба атрибута находятся в пространстве имен System.ComponentModel.DataAnnotations
Согласно атрибуту [MaxLength]
официального веб-сайта Microsoft для Entity Framework, поскольку Entity Framework знает, какой может быть максимальная длина столбца в базе данных в вашем случае (например, varchar (80))
Задает максимальную длину массива или строковых данных, разрешенных в свойстве.
http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.maxlengthattribute.aspx
Как и в одном из ваших комментариев, вы сказали, что не используете Entity Framework в ответ на @jackncoke, поэтому [MaxLength(80)]
не будет работать
Но во втором случае [StringLength(80)]
работает, потому что он не имеет никакой зависимости от Entity Framework.
SO [StringLength(80)]
будет работать в обоих случаях, если вы используете Entity Framework или без него
Задает минимальную и максимальную длину символов, допустимых в поле данных.
http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.stringlengthattribute.aspx
Ответ 2
[MaxLength(80)]
измените на [StringLength(80)]
, но похоже, что вы избили меня!
Ваш не единственный с этой проблемой
Атрибут MaxLength не генерирует атрибуты проверки на стороне клиента
Ответ 3
В MVC4 MaxLength работает правильно, я должен проверить его
public class RegisterModel
{
[Required]
[Display(Name = "User name")]
[MaxLength(5)] //MaxLength worked properly.
public string UserName { get; set; }
[Required]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[DataType(DataType.Password)]
[Display(Name = "Confirm password")]
[Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
public string ConfirmPassword { get; set; }
}
![enter image description here]()