동시에 ASP.NET MVC3에서 사용 IClientValidatable 인터페이스 클라이언트와 서버 측 유효성 검사에 대해 이야기
. IValidatableObject 인터페이스는 온라인으로 많은 정보를 제공하고, 오늘은이 인터페이스를 IClientValidatable을 도입, IClientValidatable 인터페이스가 있습니다 ASP NET MVC 결과 지원 클라이언트 측 유효성 검사를 실행시에,이 인터페이스는 다른 인증 프레임 워크의 통합을 지원하는 데 사용됩니다 - 발췌 : ASP.NET MVC3 개요.
여기에서 우리는 IClientValidatable는 클라이언트와 서버 쪽을 확인 구현하는 인터페이스를 사용하는 방법을 살펴.
먼저 우리가 NoIsAttribute.cs에서 유효성 검사 속성을 정의 다음과 같이 주요 역할은 지정된 사용자 이름을 포함 할 수 없습니다 문자열 속성을 확인하는 것입니다 :
공공 봉인 클래스 NoIsAttribute : ValidationAttribute { 공공 문자열 InputString {GET; 세트; } 공개 NoIsAttribute () { 으로 ErrorMessage = "验证失败"; } 공공 재정의 부울 IsValid (개체 값) { 경우 (값 == NULL) true를 반환; 문자열 inputString = (문자열) 값; (inputString.Contains (InputString))의 경우 { 반환 거짓; } TRUE를 반환; } }
하자가 엔티티 클래스 Logon.cs를 만들
로그온 수준의 공공 { [DisplayName이 ( "나이")] [레인지 (6100)] 공공 INT 나이 {GET, SET;} [DisplayName이 ( "이름")] [NOIS (InputString = "Bujun 쉥"으로 ErrorMessage = "사용자 이름 Bujun 쉥 ")]가 포함되지 공공 문자열 이름 {GET을, SET를;} }
Logon.cs 후 우리는 당신이 입력하면 로그인 과정에서 사용자가 포함되어 있으므로 "보 Junsheng을"는 확인되지 않지만 사용자가 서버에 데이터를 제출할 수 있습니다 때 속성이 아니라, NOIS 속성의 Name 속성을 확인하는 데 사용할 (사용자가 나이를 입력하면 클라이언트 측 유효성 검사 범위에 대한 asp.net mvc3 기본 지원하므로, 시대가 요구 사항을 충족하지 않는 경우하는 클라이언트를 인증 할 수 있기 때문에 속성 나이, 속성의 응용 프로그램을 확인 범위.) 데이터 유효성 검사, 우리는 우리의 NoIsAttribute.cs 코드를 변환 할 수 있도록 클라이언트 측에서 확인할 수 있습니다 NOIS 특성을 확인하기 위해, 우리는 IClientValidatable NoIsAttribute.cs 인터페이스를 구현해야합니다.
공공 봉인 클래스 NoIsAttribute : ValidationAttribute, IClientValidatable { 공공 문자열 InputString {GET; 세트; } 공개 NoIsAttribute () { 으로 ErrorMessage = "验证失败"; } 공개는 IEnumerable <ModelClientValidationRule> GetClientValidationRules (ModelMetadata 메타 ControllerContext 컨텍스트) { ModelClientValidationRule 규칙 = 새로운 ModelClientValidationRule { ValidationType = "NOIS" 으로 ErrorMessage = FormatErrorMessage (metadata.GetDisplayName ()) }; = InputString를 [ "inputstring"] rule.ValidationParameters; 반환 규칙을 얻을; } 공공 재정의 부울 IsValid (개체 값) { (값 == NULL을)하는 경우 true를 반환; 문자열 inputString = (문자열) 값; (inputString.Contains (InputString))의 경우 { 반환 거짓; } TRUE를 반환; } }
IClientValidatable 인터페이스는 그 방법은, 한 우리는이 방법을 구현할 수있는 한,이 방법은 두개의 파라미터, 속성을 나타내는 메타 데이터의 메타 데이터를 확인하기를 포함한다) (1 개만 GetClientValidationRules 있고, 매우 간단하고, 컨텍스트 컨트롤러 전송 요청 상황을 표시하고, 컬렉션을 반환 ModelClientValidationRule.
의이 코드를 살펴 보자 :
ModelClientValidationRule 규칙을 신규 ModelClientValidationRule = { ValidationType = "NOIS" 으로 ErrorMessage = FormatErrorMessage (metadata.GetDisplayName ()) };
이 코드는 ValidationType 인증의 유형은 두 가지 속성을하는 ModelClientValidationRule 객체를 생성하고 할당하는 것입니다, ErrorMessage가 잘못된 정보 (클라이언트 코드는 속성을 호출해야합니다).
우리가이 코드 뒤에 다음을 살펴 보자 :
= InputString를 [ "inputstring"] rule.ValidationParameters;
이 코드의 의미하는 것은 "inputstring"유효성 검사 속성을 추가하는 것입니다, 그 값은 참고 InputString은 ValidationParameters 사전, 가장 중요한 것은 키가 소문자 여야 ValidationParameters입니다,를 포함 할 수없는 IDictionary <문자열, 개체>는 점이다 문자를 대문자, 그렇지 않으면 명심해야 실행 오류 것입니다.
IClientValidatable.cs 완료 한 후, 우리는 또한 동시에 클라이언트와 서버 측 유효성 검사를 달성하기 위해 쓰기 클라이언트 측 코드가 필요합니다.
우리는 Web.config의에서 볼 수있는 기본적 asp.net mvc3으로는, 클라이언트 측 유효성 검사 및 검증 숨기기를 열었습니다
<appSettings는> <= 키 값 = "참"/ "ClientValidationEnabled"추가> < "UnobtrusiveJavaScriptEnabled"키 = 추가 = 값이 "true"/> </ appSettings는>
그래서 asp.net mvc3 사용 JQuery와 유효성 검사 플러그인 기본적으로 클라이언트 인증을 위해 다음과 같은 그림 코드보기 파일을 볼 수 있도록
<스크립트 SRC = "@ Url.Content ("~ / 스크립트 / jquery.validate.min.js ")"유형 = "텍스트 / 자바 스크립트"> </ script> <스크립트 SRC = "@ Url.Content ("~ / 스크립트 / jquery.validate.unobtrusive.min.js ")"유형 = "텍스트 / 자바 스크립트"> </ script>
여기에서 우리는 유효성 검증 규칙에 사용자 정의 플러그인을 작성해야하고, 눈에 거슬리지에 추가 규칙, 코드는 그대로 다음과 같습니다 :
<script 타입 = "텍스트 / 자바 스크립트"> $ .validator.addMethod ( "NOIS"기능 (값, 요소, PARAM) { 경우 (값 == false)를 { true를 반환; } 경우 (value.indexOf (PARAM)! = -1) { false를 반환; } 다른 { true를 반환; } }); $ .validator.unobtrusive.adapters.addSingleVal ( "NOIS", "inputstring"); </ script>
이 함수는 제 1 파라미터의 값은 값 IClientValidatable.cs ValidationType과 일치해야 addMethod 것을 주목해야하는 것은, "NOIS"이어야하는 $ .validator.unobtrusive.adapters.addSingleVal ( "NOIS"존재 ) "inputstring"; 문장과 같은 핵심 ValidationParameters 값의 제 파라미터 값 "inputstring"이어야한다.
이 관심있는 친구들은 다음에 시도 할 수 있습니다, 클라이언트와 서버 쪽을 달성 할 것이며 확인합니다.
. IValidatableObject 인터페이스는 온라인으로 많은 정보를 제공하고, 오늘은이 인터페이스를 IClientValidatable을 도입, IClientValidatable 인터페이스가 있습니다 ASP NET MVC 결과 지원 클라이언트 측 유효성 검사를 실행시에,이 인터페이스는 다른 인증 프레임 워크의 통합을 지원하는 데 사용됩니다 - 발췌 : ASP.NET MVC3 개요.
여기에서 우리는 IClientValidatable는 클라이언트와 서버 쪽을 확인 구현하는 인터페이스를 사용하는 방법을 살펴.
먼저 우리가 NoIsAttribute.cs에서 유효성 검사 속성을 정의 다음과 같이 주요 역할은 지정된 사용자 이름을 포함 할 수 없습니다 문자열 속성을 확인하는 것입니다 :
공공 봉인 클래스 NoIsAttribute : ValidationAttribute { 공공 문자열 InputString {GET; 세트; } 공개 NoIsAttribute () { 으로 ErrorMessage = "验证失败"; } 공공 재정의 부울 IsValid (개체 값) { 경우 (값 == NULL) true를 반환; 문자열 inputString = (문자열) 값; (inputString.Contains (InputString))의 경우 { 반환 거짓; } TRUE를 반환; } }
하자가 엔티티 클래스 Logon.cs를 만들
로그온 수준의 공공 { [DisplayName이 ( "나이")] [레인지 (6100)] 공공 INT 나이 {GET, SET;} [DisplayName이 ( "이름")] [NOIS (InputString = "Bujun 쉥"으로 ErrorMessage = "사용자 이름 Bujun 쉥 ")]가 포함되지 공공 문자열 이름 {GET을, SET를;} }
Logon.cs 후 우리는 당신이 입력하면 로그인 과정에서 사용자가 포함되어 있으므로 "보 Junsheng을"는 확인되지 않지만 사용자가 서버에 데이터를 제출할 수 있습니다 때 속성이 아니라, NOIS 속성의 Name 속성을 확인하는 데 사용할 (사용자가 나이를 입력하면 클라이언트 측 유효성 검사 범위에 대한 asp.net mvc3 기본 지원하므로, 시대가 요구 사항을 충족하지 않는 경우하는 클라이언트를 인증 할 수 있기 때문에 속성 나이, 속성의 응용 프로그램을 확인 범위.) 데이터 유효성 검사, 우리는 우리의 NoIsAttribute.cs 코드를 변환 할 수 있도록 클라이언트 측에서 확인할 수 있습니다 NOIS 특성을 확인하기 위해, 우리는 IClientValidatable NoIsAttribute.cs 인터페이스를 구현해야합니다.
공공 봉인 클래스 NoIsAttribute : ValidationAttribute, IClientValidatable { 공공 문자열 InputString {GET; 세트; } 공개 NoIsAttribute () { 으로 ErrorMessage = "验证失败"; } 공개는 IEnumerable <ModelClientValidationRule> GetClientValidationRules (ModelMetadata 메타 ControllerContext 컨텍스트) { ModelClientValidationRule 규칙 = 새로운 ModelClientValidationRule { ValidationType = "NOIS" 으로 ErrorMessage = FormatErrorMessage (metadata.GetDisplayName ()) }; = InputString를 [ "inputstring"] rule.ValidationParameters; 반환 규칙을 얻을; } 공공 재정의 부울 IsValid (개체 값) { (값 == NULL을)하는 경우 true를 반환; 문자열 inputString = (문자열) 값; (inputString.Contains (InputString))의 경우 { 반환 거짓; } TRUE를 반환; } }
IClientValidatable 인터페이스는 그 방법은, 한 우리는이 방법을 구현할 수있는 한,이 방법은 두개의 파라미터, 속성을 나타내는 메타 데이터의 메타 데이터를 확인하기를 포함한다) (1 개만 GetClientValidationRules 있고, 매우 간단하고, 컨텍스트 컨트롤러 전송 요청 상황을 표시하고, 컬렉션을 반환 ModelClientValidationRule.
의이 코드를 살펴 보자 :
ModelClientValidationRule 규칙을 신규 ModelClientValidationRule = { ValidationType = "NOIS" 으로 ErrorMessage = FormatErrorMessage (metadata.GetDisplayName ()) };
이 코드는 ValidationType 인증의 유형은 두 가지 속성을하는 ModelClientValidationRule 객체를 생성하고 할당하는 것입니다, ErrorMessage가 잘못된 정보 (클라이언트 코드는 속성을 호출해야합니다).
우리가이 코드 뒤에 다음을 살펴 보자 :
= InputString를 [ "inputstring"] rule.ValidationParameters;
이 코드의 의미하는 것은 "inputstring"유효성 검사 속성을 추가하는 것입니다, 그 값은 참고 InputString은 ValidationParameters 사전, 가장 중요한 것은 키가 소문자 여야 ValidationParameters입니다,를 포함 할 수없는 IDictionary <문자열, 개체>는 점이다 문자를 대문자, 그렇지 않으면 명심해야 실행 오류 것입니다.
IClientValidatable.cs 완료 한 후, 우리는 또한 동시에 클라이언트와 서버 측 유효성 검사를 달성하기 위해 쓰기 클라이언트 측 코드가 필요합니다.
우리는 Web.config의에서 볼 수있는 기본적 asp.net mvc3으로는, 클라이언트 측 유효성 검사 및 검증 숨기기를 열었습니다
<appSettings는> <= 키 값 = "참"/ "ClientValidationEnabled"추가> < "UnobtrusiveJavaScriptEnabled"키 = 추가 = 값이 "true"/> </ appSettings는>
그래서 asp.net mvc3 사용 JQuery와 유효성 검사 플러그인 기본적으로 클라이언트 인증을 위해 다음과 같은 그림 코드보기 파일을 볼 수 있도록
<스크립트 SRC = "@ Url.Content ("~ / 스크립트 / jquery.validate.min.js ")"유형 = "텍스트 / 자바 스크립트"> </ script> <스크립트 SRC = "@ Url.Content ("~ / 스크립트 / jquery.validate.unobtrusive.min.js ")"유형 = "텍스트 / 자바 스크립트"> </ script>
여기에서 우리는 유효성 검증 규칙에 사용자 정의 플러그인을 작성해야하고, 눈에 거슬리지에 추가 규칙, 코드는 그대로 다음과 같습니다 :
<script 타입 = "텍스트 / 자바 스크립트"> $ .validator.addMethod ( "NOIS"기능 (값, 요소, PARAM) { 경우 (값 == false)를 { true를 반환; } 경우 (value.indexOf (PARAM)! = -1) { false를 반환; } 다른 { true를 반환; } }); $ .validator.unobtrusive.adapters.addSingleVal ( "NOIS", "inputstring"); </ script>
이 함수는 제 1 파라미터의 값은 값 IClientValidatable.cs ValidationType과 일치해야 addMethod 것을 주목해야하는 것은, "NOIS"이어야하는 $ .validator.unobtrusive.adapters.addSingleVal ( "NOIS"존재 ) "inputstring"; 문장과 같은 핵심 ValidationParameters 값의 제 파라미터 값 "inputstring"이어야한다.
이 관심있는 친구들은 다음에 시도 할 수 있습니다, 클라이언트와 서버 쪽을 달성 할 것이며 확인합니다.