Handmatig ModelState.isValid instellen vanaf controller

Is er een manier waarop ik de ModelState.isValid = Falsehandmatig kan instellen vanaf de controller?

Ik heb een code zoals deze

   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

Maar als _regio niets is, worden er geen validatiefouten geactiveerd.

Ik dacht erover om een ​​aangepaste validator te implementeren, maar daarvoor zou de database twee keer moeten worden gebruikt (één keer voor validatie en één keer om de waarde in te stellen).


Antwoord 1, autoriteit 100%

Je kunt ModelState.IsValidniet rechtstreeks instellen, omdat het een afgeleide eigenschap is die eenvoudig de foutenverzameling van het model controleert. U kunt echter uw eigen modelfouten toevoegen, bijvoorbeeld:

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

ModelState.IsValidretourneert dan false.

Other episodes