ProgramingTip

ModelState 유효성 검사 수동 호출

bestdevel 2020. 12. 15. 19:37
반응형

ModelState 유효성 검사 수동 호출


ASP.NET MVC 3 코드 우선을 사용하고 언어 모델에 유효성 검사 데이터 주석을 추가했습니다. 다음은 모델의 예입니다.

public class Product
{
    public int ProductId { get; set; }

    [Required(ErrorMessage = "Please enter a name")]
    public string Name { get; set; }

    [Required(ErrorMessage = "Please enter a description")]
    [DataType(DataType.MultilineText)]
    public string Description { get; set; }

    [Required(ErrorMessage = "Please provide a logo")]
    public string Logo { get; set; }
}

내 웹 사이트에는 새 제품을 만드는 다단계 프로세스가 있습니다. 1 단계는 제품 세부 정보, 2 단계 기타 정보 등을 입력합니다. 각 단계 사이에 각 개체 (예 : 제품 개체)를 세션에 저장 사용자는 프로세스의 해당 단계로 돌아가 입력 한 데이터를 단계 수 있습니다.

각 화면에는 새로운 jQuery 유효성 검사와 함께 작동하는 클라이언트 측 유효성 검사가 있습니다.

마지막 단계는 제품이 데이터베이스에 생성되는 확인 화면입니다. 그러나 사용자가 단계 사이에 있는지 확인하기 때문에 데이터를 완료했는지 확인하기 위해 개체 (제품 및 기타)의 유효성을 검사해야합니다.

데이터 주석이있는 개체에 대해 ModelState 유효성 검사를 프로그래밍 방식으로 호출하는 방법이 있습니까? 개체의 각 속성을 살펴보고 수동 ​​유효성 검사를 수행 할 필요가 없습니다.

ASP.NET MVC 3의 모델 유효성 검사 기능을 더 쉽게 사용할 수있는 경우이 프로세스를 개선하는 방법에 대한 제안이 열려 있습니다.


액션 ValidateModel에서 메서드 를 호출 할 수 있습니다 Controller( 문서는 여기 ).


ValidateModel또는 TryValidateModel컨트롤러 범위에서 사용할 수 있습니다 .

모델의 유효성을 검사 할 때 하나 이상의 양식 입력이 모델 속성에 바인딩 된 경우 모든 속성에 대한 모든 유효성 검사기가 실행됩니다. ValidateModel은 모델 유효성 검사가 실패 할 경우 TryValidateModel 메서드가 InvalidOperationException 예외를 throw하지 않는다는 점을 제외하면 TryValidateModel 메서드와 처리합니다.

ValidateModel- 모델이 유효하지 않은 경우 예외를 수정했습니다.

TryValidateModel- 모델이 유효한지 부울 값을 반환합니다.

모델 목록을 하나씩 유효성을 검사하는 경우를 호출하여 각 반복에 대해 ModelState를 사용할 수 ModelState.Clear()있습니다.

MSDN 링크


나는 이것이 작동하고 예상대로 정확하게 수행하는 것을 발견했습니다. .. POST 전에 GET 작업 메소드에서 새로 검색된 개체에 대한 ValidationSummary를 표시합니다.

Me.TryValidateModel(MyCompany.OrderModel)

참조 URL : https://stackoverflow.com/questions/6360087/manually-invoking-modelstate-validation

반응형