Вручную установите ModelState.isValid из контроллера
Есть ли способ вручную установить 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
Вы не можете напрямую установить ModelState.IsValid
, так как это производное свойство, которое просто проверяет коллекцию ошибок моделей. Однако вы можете добавить свои собственные ошибки модели, например:
ModelState.AddModelError("Region", "Region is mandatory");
ModelState.IsValid
затем вернет false.