我可以通过 Controller 手动设置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无效,则不会触发任何验证错误。

我考虑过实现自定义验证器,但它需要两次访问数据库(一次用于验证,一次用于设置值)。

最佳答案

您不能直接设置ModelState.IsValid,因为它是仅检查模型错误集合的派生属性。但是,您可以添加自己的模型错误,例如:

ModelState.AddModelError("Region", "Region is mandatory");
ModelState.IsValid将返回false。

关于asp.net-mvc - 从 Controller 手动设置ModelState.isValid,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3169585/

10-13 01:04