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