오늘날의 비즈니스 웹 사이트 또는 개인 웹 사이트에는 사용자 등록과 같은 고객이 필연적으로 작성됩니다. 나는 코드를 작성하는 것이 흥미로운 일이라는 것을 인정하지만, 당신은 양식을 확인할 때마다 우리의 작업 효율성을 향상시키기를 희망합니다.
다른 이유에 따라 웹 애플리케이션은 사용자의 입력을 확인하기가 어렵습니다. 코드, 안전을 보장하기 위해 서버를 확인해야합니다.
아래는 Microsoft 직원입니다. 필기 코드로 제공되는 상업용 웹 사이트는 양식의 양식 검증의 단점을 제어합니다.
1. 오류 정보 나 아이콘이 종종 입력 요소에 인접 해 있지만 거의 항상 테이블의 다른 셀에 있습니다.
2. 페이지에는 모든 오류를 요약 할 영역이 종종 있습니다.
3. 많은 사이트에는 서버 간의 왕복을 방지하면서 더 빠른 피드백을 제공하기 위해 클라이언트 스크립트가 포함되어 있습니다.
4. 클라이언트 스크립트를 포함한 많은 사이트에는 오류가있을 때 정보 상자가 표시됩니다.
5. 텍스트 입력이 확인 될뿐만 아니라 드롭 다운 목록 및 라디오 버튼도 확인됩니다.
6. 필드가 비어 있으면 사이트는 일반적으로 유효하지 않은 경우 다른 정보 나 아이콘을 표시합니다.
7. 많은 효과적인 시험은 일반적으로 사용되는 표현으로 잘 대체 될 수 있습니다.
8. 검증은 일반적으로 두 입력 사이의 비교 결과를 기반으로합니다.
9.90% 또는 90% 이상의 검증 작업은 이름 확인 또는 우편 코딩과 같은 일반적인 작업입니다. 대부분의 사이트는 여전히 이러한 작업을 반복하는 것 같습니다.
10. 사이트 간의 차이가 일반적으로 너무 크기 때문에 각 사이트의 모든 검증 작업을 처리하기 위해 완벽한 솔루션을 얻을 수 없습니다.
동료들과 함께 "멋진"방법이 있음을 확인하려면 이름 세그먼트에서 빈 값을 금지하고 아래의 자습서를보십시오.
ASP.NET는 양식 검증의 양식 검증을 처리합니다
1. ASPX 파일이 컴파일되어 실행됩니다
2. 사용자 입력 데이터
3. page_load 이벤트 트리거
4. 웹 제어 속성을 변경하고 입력이없는 경우 프롬프트
5. HTML을 사용하여 페이지를 사용자에게 내 보냅니다
6. 사용자에게 다시 입력하라고 상기시킵니다
page_load 프로세스
페이지 객체에는 서버 -사이드 검증과 관련된 몇 가지 중요한 속성 및 메소드가 포함됩니다. 다음 표에는 page_load 속성의 모든 컬렉션 및 메트가 나와 있습니다.
page_load 메소드 이름 설명
IsValid (가장 자주 사용)는 가장 유용한 속성입니다. 이 속성은 전체 양식이 효과적인지 확인할 수 있습니다. 이 점검은 일반적으로 데이터베이스를 업데이트하기 전에 수행됩니다. 유효성 검사기의 모든 객체 만 유효하고 속성은 참이며 값은 캐시에 저장되지 않습니다.
유효성 검사이 페이지의 모든 검증 개체 모음. 이것은 Ivalidator 인터페이스를 구현하는 객체 모음입니다.
검증에서 Validate라는 메소드. 페이지 객체의 기본 실행 방법은 각 확인 장치로 돌리고 확인 장치가 자체를 평가하도록 요구하는 것입니다.
양식의 확인 장치를 확인하는 데 사용됩니다 (웹 제어)
필수 필드 validator 사용자가 컨텐츠를 입력했는지 또는 선택했는지 확인했습니다.
규칙에 따라 사용자 입력을 확인합니다. 이 프로세스를 사용하면 우편 코딩 및 전화 번호에 많은 유형의 시험을 사용할 수 있습니다.
CompareValidator는 입력 제어를 하나의 고정 값 또는 다른 입력 제어와 비교합니다. 예를 들어, 비밀번호 검증 필드에 사용할 수 있습니다. 날짜와 숫자 입력을 비교하는 데 사용될 수도 있습니다.
RangeValidator는 CompareValidator와 매우 유사하지만 입력이 둘 또는 기타 입력 제어 값 사이에 있는지 확인하는 데 사용됩니다.
CustomValidator를 사용하면 사용자가 자신의 코드를 작성하여 확인 프레임 워크에 가입 할 수 있습니다.
예제 설명 위에서 설명한 제어의 작동
우리는 최소화 된 .aspx 페이지를 구축하고 화려한 수정 효과가 필요하지 않습니다.
<p> 새 사용자 ID 및 비밀번호를 입력하십시오 </p>
<form runat = server>
<테이블>
<tr>
<td> 사용자 ID </td>
<td in <입력 유형 = 텍스트 runat = 서버 id = txtname> </td>
</tr>
<tr>
<td> Polar </td>
<td> <입력 유형 = 비밀번호 runat = 서버 id = txtpword> </td>
</tr>
<tr>
<td> 비밀번호를 다시 입력하십시오 </td>
<td in <입력 유형 = 비밀번호 runat = server id = txtrepword> </td>
</tr>
<tal> <br>
<입력 유형 = 제출 runat = 서버 id = cmdsubmit value = 제출>
</form>
이 프로그램은 매우 가혹한 일이므로 모든 항목이 채워 졌음을 강조해야하며 이렇게 할 수 있습니다. 각 필드 앞에 필수 필드 볼리 디터를 추가하십시오. 필드가 비어 있으면 필드 앞에 별 번호 (*)를 표시하고 그 옆에 오류를보고해야합니다.
예를 들어:
<tr>
<td>
<ASP : 필수 필드 유효성 검사기 runat = 서버
ControlTovalidate = txtname입니다
errormessage = "사용자 이름이 필요합니다."
</asp : 필수 필드 validator>
</td>
<td> 사용자 ID : </td>
<td in <입력 유형 = 텍스트 runat = 서버 id = txtname> </td>
</tr>
콘텐츠를 입력하지 않고 "*"는 레이블 옆에 표시됩니다. 오류 뉴스가 나타납니다. "ControlTovalidate"속성 검증에 필요한 제어 ID를 지정합니다. 마지막 단계는 페이지 상단의 모든 오류를 표시하는 것입니다.
암호:
<asp : validationSummary runat = Server HeaderText =이 페이지에 오류가 있습니다 :/>
그런 다음 사용자 ID는 6-10 자이어야하며 비밀번호는 4-12 문자 여야하며@#$%^&*/문자가 있어야합니다.
코드 : 여기에 ID 길이에 제한 사항이 추가되었습니다.
<td>
<입력 유형 = 텍스트 runat = 서버 id = txtname>
<asp : exeralxpressionvalidator runat = 서버
controlTovalidate = "txtname"
errormesage = "wanlets는 6-10 글자로 구성되어야합니다."
validationxpression = "[a-za-z] {6,10}" />
</td>
그런 다음 두 입력에 대한 비밀번호가 동일한 지 여부를 확인해야합니다.
<asp : exeralxpressionvalidator runat = 서버 디스플레이 = 동적
controlTovalidate = "txtpword"
errormessage = "암호는@#$%^&*/중 하나를 포함해야합니다."
ValidationExpression = ".*[@#$%^&* /]." />
<asp : exeralxpressionvalidator runat = 서버 디스플레이 = 동적
controlTovalidate = "txtpword"
errormessage = "비밀번호는 4-12의 비 분개 문자 여야합니다."
validationxpression = "[ /s {4,12}" />
<ASP : CompareValidator runat = Server
ControlTovalidate = txtrepword
ControlToCompare = txtpword
errormessage = "비밀번호가 일치하지 않습니다."
기본적으로 CompareValidator는 간단한 문자열 매칭과 비교됩니다. 필요한 경우 날짜와 숫자와 관련된보다 복잡한 비교를 만들 수 있습니다.
주의가 필요한 몇 가지 문제
스크립트 라이브러리 정보
웹 제어 스크립트의 확인은 스크립트 라이브러리에 있으므로 모든 클라이언트가 확인한 코드는 표면에서 수행되는 것 같습니다. 기본 스크립트 파일 참조는 다음과 유사합니다.
<script language = "javaScript"src = "/_ aspx/1.0.9999/script/webuivalidation.js"> </script>
기본적으로 스크립트 파일은 "_ASPX"디렉토리의 기본 루트 디렉토리에 설치되며 비교적 루트가있는 스크립트를 사용하여 긍정적 인 기울기로 시작하는 습기를 포함합니다. 참조는 각 개별 객체에 스크립트 라이브러리를 포함 할 필요가 없으며 동일한 컴퓨터의 모든 페이지가 동일한 파일을 참조 할 수 있음을 보여줍니다. 이 경로에는 공개 언어 버전 번호가 있으므로 동일한 컴퓨터에서 다른 런타임 버전이 실행될 수 있습니다.
기본 가상 루트 디렉토리를 보면 파일을 찾아 내용을 보게됩니다. 이 파일의 위치는 config.web 파일에 지정되어 있습니다. config.web 파일은 대부분의 ASP+ 설정에 대한 XML 파일입니다. 다음은이 파일의 위치 정의입니다.
<WebControls
clientscripttlocation = "/_ aspx/{0}/script/"
/>
심층적으로 발생하는 이벤트를 이해할 수 있도록 스크립트를 읽도록 권장하십시오. 그러나 함수는 특정 런타임 버전과 밀접하게 연결되어 있으므로 이러한 스크립트를 수정하지 않는 것이 좋습니다. 버전이 업데이트되면이 스크립트는 변경 사항을 포기하거나 작동하지 않는 문제에 직면해야 할 수도 있습니다. 특정 프로젝트를 변경 해야하는 경우 먼저이 스크립트를 백업 한 다음 프로젝트를 백업 파일로 가리 키십시오.이 파일의 위치를 대체하기 위해 개인 config.web 파일을 사용해야합니다. 문자열에 형식 명령 "{0}"이 포함 된 경우 버전 번호는 실행할 때 명령어를 대체합니다. 이 위치를 상대 참조 또는 절대 참조로 변경하는 것이 가장 좋습니다. 웹 디자인 애호가 웹 개발을 방문하십시오.