我有办法从控制器手动设置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什么都没有,那么我就不会触发任何验证错误。
我考虑过实现一个自定义验证器,但它需要两次点击数据库(一次用于验证,一次用于设置值)。
答案 0 :(得分:100)
您不能直接设置ModelState.IsValid
,因为它是一个只检查模型错误集合的派生属性。但是,您可以添加自己的模型错误,例如:
ModelState.AddModelError("Region", "Region is mandatory");
ModelState.IsValid
将返回false。