проверить состояние модели без прохождения модели - PullRequest
0 голосов
/ 10 апреля 2019

Я хочу проверить модель, используя приведенный ниже код

if (ModelState.IsValid)
  {

  }

Проблема в том, что когда я передавал объект модели действию контроллера, он работал правильно, но когда я вызывал действие контроллера, используя приведенный ниже код

public ActionResult Save()
{
}

Тогда мое состояние модели всегда возвращает true. Поэтому, пожалуйста, уточните мне, возможно ли проверить ModelState.IsValid, используя приведенный выше код. В моем случае распространенным является метод сохранения, который вызывается из нескольких контроллеров, поэтому модель не является фиксированным параметром. пожалуйста, дайте мне знать, как проверить модель.

1 Ответ

0 голосов
/ 12 апреля 2019

MVC использует модель для извлечения атрибутов валидации в качестве средства валидации. Вы можете явно вызвать ValidateModel() или TryValidateModel() в контроллере напрямую, но опять же, это проверка модели с использованием атрибутов проверки модели. Если вы явно не используете модель, вы можете получить доступ к форме напрямую, как вы, вероятно, знаете, или можете вручную подтвердить ввод, а затем добавить соответствующие ошибки проверки модели, используя:

ModelState.AddModelError("PropertyName", "ErrorMessage");

Или используйте эту технику в зависимости от структуры вашего приложения: Как добавить сообщение ModelState.AddModelError, когда элемент модели не связан

...