Это часть класса модели MVC:
[Required]
[StringLength(2, ErrorMessage = "Two characters.")]
public string StateProvince { get; set; }
Если я отправлю свою форму с пустым StateProvince, я получу сообщение об ошибке. Если я отправлю его с одним символом в StateProvince, нет проблем. Вот как я получаю сообщения об ошибках:
if (!ModelState.IsValid)
{
MyMessage ErrMsg = new MyMessage();
ErrMsg.StatusCode = 101;
ErrMsg.StatusMsg = string.Join("; ", ModelState.Values.SelectMany(x => x.Errors).Select(x => x.ErrorMessage));
return "[" + JsonConvert.SerializeObject(ErrMsg) + "]";
}
MyMessage имеет следующую структуру:
public class MyMessage
{
public int StatusCode { get; set; }
public string StatusMsg { get; set; }
}
Прав ли я заключить, что украшение StringLength служит только для создания проверки на стороне клиента в поле ввода html?
Поскольку я сам кодирую HTML-код и не использую Asp.Net для его генерации, я должен просто пропустить декорацию StringLength в поле модели и вместо этого написать код проверки на стороне сервера для этого в контроллере? (И это нарушает MVC, верно?)