2010-02-24 6 views
2

이전에 Page.Validate를 명시 적으로 호출하지 않았거나 활성화 된 컨트롤의 이벤트 처리기에서 유효성 검사가 자동으로 수행되지 않은 경우 ASP.NET 페이지의 코드 숨김에서 Page.IsValid를 호출하면 예외가 throw됩니다. "CausesValidation".안전하게 Page.IsValid를 사용할 수 있는지 확인하는 방법이 있습니까?

때로는 모든 입력이 유효한지 알 필요가있는 페이지의 이벤트 또는 이벤트에 있지만 포스트 백이 발생한 특정 위치를 모릅니다. 따라서 이전에 페이지의 유효성이 검증되었는지 여부는 알 수 없습니다. 즉, Page.IsValid에 Page.Validate를 호출하지 않고 요청할 수 있는지 여부를 먼저 알 수 있습니다.

페이지가 이미 유효성 검사 (부울 속성 "Page.HasBeenValidated"또는 기타와 같은 것)되었는지 확인하는 방법이 있습니까?

답변

4

시도가 시도 캐치 내부

private bool isPageValid; 
public bool IsPageValid 
{ 
    get 
    { 
     try 
     { 
     isPageValid= Page.IsValid 
     } 
     catch 
     { 
     Page.Validate(); 
     isPageValid = Page.IsValid 
     } 
     return isPageValid; 
    } 
} 
+0

감사를 개인 변수를 할당, 그 괜찮아! 페이지 클래스에 내장 된 것을 기대했지만 실제로 존재하지 않는 것 같습니다. – Slauma

+0

당신은 private 변수가 필요 없다. 간단히'try {return Page.IsValid; } catch {Page.Validate(); Page.IsValid를 반환합니다. }'. – Steven

관련 문제