Установить ModelState.isValid вручную из контроллера - PullRequest
56 голосов
/ 03 июля 2010

Можно ли вручную установить ModelState.isValid = False с контроллера?

У меня есть такой код

    Dim _region As Domain.Region = RegionService.GetRegionByNameAndParentID(user.UserRegion, user.ParentRegionID)
    If ModelState.IsValid AndAlso Not _region Is Nothing Then
           ''# ...
    Else
           Return View(user)
    End If

Но если _region - ничто, тогда я не получаю никаких ошибок валидации.

Я думал о реализации пользовательского валидатора, но для этого потребуется дважды нажать на базу данных (один раз для проверки и один раз для установки значения).

1 Ответ

100 голосов
/ 03 июля 2010

Вы не можете установить ModelState.IsValid напрямую, так как это производное свойство, которое просто проверяет набор ошибок моделей.Однако вы можете добавить собственные ошибки модели, например:

ModelState.AddModelError("Region", "Region is mandatory");

ModelState.IsValid вернет false.

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