【问题标题】:Manually Set ModelState.isValid from Controller从控制器手动设置 ModelState.isValid
【发布时间】:2011-03-11 07:41:31
【问题描述】:

有没有办法让我从控制器手动设置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 什么都不是,那么我不会触发任何验证错误。

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

【问题讨论】:

    标签: asp.net-mvc validation


    【解决方案1】:

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

    ModelState.AddModelError("Region", "Region is mandatory");
    

    ModelState.IsValid 然后将返回 false。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-30
      • 1970-01-01
      • 2013-03-04
      相关资源
      最近更新 更多