ASP.NET 서버 컨트롤에서 프로그래밍 방식으로 유효성 검사
업데이트: 2007년 11월
기본적으로 ASP.NET 유효성 검사 컨트롤은 페이지가 다시 서버에 게시될 때와 페이지 초기화 후(뷰 상태 및 다시 게시할 데이터가 처리된 다음) 그리고 이벤트 처리 코드가 호출되기 전에 자동으로 유효성 검사를 수행합니다. 브라우저에서 클라이언트 스크립트를 지원하는 경우에는 컨트롤이 브라우저에서 유효성 검사를 수행할 수도 있습니다.
그러나 프로그래밍 방식으로 직접 유효성 검사를 수행해야 하는 경우가 있습니다. 이러한 경우 프로그래밍 방식으로 유효성을 검사할 수 있습니다.
유효성 검사 값이 런타임까지 설정되지 않은 경우. 예를 들어, RangeValidator 컨트롤 작업을 하는 경우 런타임에 사용자가 입력한 값을 기반으로 MinimumValue 및 MaximumValue 속성을 설정합니다. 이 경우 페이지가 유효성 검사를 수행하도록 유효성 검사 컨트롤을 호출할 때 RangeValidator 컨트롤에 정보가 부족하므로 기본 유효성 검사는 수행되지 않습니다.
Page_Load 이벤트 처리기에서 컨트롤이나 페이지 전체의 유효성을 검사하려는 경우. 이 페이지 처리 단계에서는 유효성 검사 컨트롤이 실행되지 않았으므로 페이지나 각 컨트롤의 IsValid 속성이 설정되지 않습니다. 이 속성 값을 가져오려고 하면 예외가 throw됩니다. 그러나 유효성을 검사하려면 프로그래밍 방식으로 유효성 검사를 호출할 수 있습니다.
런타임에 컨트롤을 추가하는 경우(입력 컨트롤이나 유효성 검사 컨트롤)
더 일반적으로 유효성 검사 수행 시기를 자세히 지정하고 싶을 때는 언제든지 프로그래밍 방식으로 유효성을 검사할 수 있습니다.
보안 정보: |
---|
기본적으로 ASP.NET 웹 페이지에서는 악의적인 의도를 가진 사용자가 응용 프로그램에 스크립트 또는 HTML 요소를 전송하는지 여부를 자동으로 확인합니다. 이 기능을 사용하지 않도록 설정한 경우 직접 ValidateInput 메서드를 호출할 수 있습니다. 자세한 내용은 스크립트 악용 개요를 참조하십시오. |
프로그래밍 방식으로 유효성을 검사하려면
유효성 검사 컨트롤의 Validate 메서드를 호출합니다.
컨트롤은 검사를 수행하고 컨트롤과 페이지의 IsValid 속성을 설정합니다. 오류가 발견되면 페이지가 사용자에게 반환될 때 평소와 같이 오류 메시지가 표시됩니다.
다음 코드 예제에서는 프로그래밍 방식으로 속성을 설정하는 방법을 보여 줍니다. 이 경우 ASP.NET 웹 페이지는 방문할 때마다 무료 투어 옵션이 있는 리조트의 예약을 수행합니다. 사용자는 도착 날짜와 출발 날짜를 입력한 다음 방문 기간 동안 투어 일정을 세워야 합니다. RangeValidator 컨트롤은 사용자가 일반 날짜 형식으로 입력하고 투어 날짜가 도착 날짜와 출발 날짜 사이가 되도록 합니다.
참고: 사용자가 날짜로 변환할 수 없는 값을 입력하면 유효성 검사기 컨트롤에서 예외를 throw합니다. 쉽게 구별할 수 있도록 이 예제에는 오류 처리가 포함되어 있지 않습니다.
도착 날짜와 출발 날짜는 페이지에 있는 두 개의 TextBox 웹 서버 컨트롤인 txtArrival과 txtDeparture에서 가져옵니다. 투어 날짜는 세 번째 TextBox 컨트롤인 txtTourDate에 입력되며 RangeValidator 컨트롤에 의해 유효성이 검사됩니다.
참고: 프로그래밍 방식으로 유효성을 검사할 때는 서버측 유효성 검사 코드가 실행되기 전에 컨트롤에서 잘못된 오류 메시지가 나타나지 않도록 클라이언트 스크립트를 해제해야 합니다. 자세한 내용은 방법: ASP.NET 서버 컨트롤의 유효성 검사 해제를 참조하십시오.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _ System.EventArgs) Handles Button1.Click RangeValidator1.MinimumValue = txtArrival.Text RangeValidator1.MaximumValue = txtDeparture.Text RangeValidator1.Type = ValidationDataType.Date RangeValidator1.Validate() If Not RangeValidator1.IsValid Then RangeValidator1.ErrorMessage = "The tour date must " & _ "fall between the arrival and departure dates." End If End Sub
private void Button1_Click(object sender, System.EventArgs e) { RangeValidator1.MinimumValue = txtArrival.Text; RangeValidator1.MaximumValue = txtDeparture.Text; RangeValidator1.Type = ValidationDataType.Date; RangeValidator1.Validate(); if (!RangeValidator1.IsValid) { RangeValidator1.ErrorMessage = "The tour date must " + "fall between the arrival and departure dates."; } }