program story

컨트롤러에서 ModelState.isValid 수동 설정

inputbox 2020. 12. 24. 23:42
반응형

컨트롤러에서 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이 아무것도 아니면 유효성 검사 오류가 발생하지 않습니다.

사용자 지정 유효성 검사기를 구현하는 것에 대해 생각했지만 데이터베이스를 두 번 (한 번 유효성 검사에 한 번, 값을 설정하기 위해 한 번) 히트해야합니다.


ModelState.IsValid단순히 모델 오류 컬렉션을 확인하는 파생 속성이므로 직접 설정할 수 없습니다 . 그러나 다음과 같은 고유 한 모델 오류를 추가 할 수 있습니다.

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

ModelState.IsValid 그런 다음 false를 반환합니다.

참조 URL : https://stackoverflow.com/questions/3169585/manually-set-modelstate-isvalid-from-controller

반응형