Is er een manier waarop ik de ModelState.isValid = False
handmatig 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.IsValid
niet 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.IsValid
retourneert dan false.