Is there a way for me to manually set the ModelState.isValid = False from the controller?
I have some code like this
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
But if _region is nothing, then I don’t get any Validation Errors firing.
I thought about implementing a custom validator, but it would require hitting the database twice (once for validation and once to set the value).
You can’t set
ModelState.IsValiddirectly, as it’s a derived property that simply checks the models error collection. You can however add your own model errors, e.g:ModelState.IsValidwill then return false.