Модель MVC не улавливает все ошибки модели - PullRequest
0 голосов
/ 16 мая 2019

Это часть класса модели 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, верно?)

1 Ответ

0 голосов
/ 16 мая 2019

Oops!Сожалею!StringLength работал.Это предотвращает только лишние символы, а не минимальное количество символов.Я знаю, что есть код для обеспечения точной длины;Я видел это раньше и буду искать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...