RedPlus 개인 블로그

시삽: 레드플러스 님 
게시판 이동:
 제목 : ASP.NET MVC 2 Custom Validation(사용자 정의 유효성 검사) 코드 샘플
글번호: 191
작성자: Administrator ( 레드플러스 / redplus@live.com )
작성일: 2010/08/22 오후 5:34:00 (2010/08/22 오후 5:34:00 수정)
조회수: 4422

 

 

/MvcBasic/Annotations/MinLengthAttribute.cs

=====================================

using System;
using System.ComponentModel.DataAnnotations;
using System.Globalization;

namespace MvcBasic.Annotations
{
    public class MinLengthAttribute: ValidationAttribute
    {
        private readonly int _data;

        public MinLengthAttribute(int data) : base("{0}는 반드시 {1}자 이상 입력해야 합니다. ")
        {
            _data = data;
        }

        public override bool IsValid(object value)
        {
            var str = value as string;

            if (!String.IsNullOrEmpty(str))
            {
                // 넘겨온 값이 3자 이하이면 에러
                if (str.Length < _data)
                {
                    return false;
                }
            }
            return true;
        }

        public override string FormatErrorMessage(string name)
        {
            return String.Format(CultureInfo.CurrentCulture, ErrorMessageString, name, _data);
        }
    }
}

 

/MvcBasic/Areas/Board/Models/Basic_Validation.cs

=====================================

using System.ComponentModel.DataAnnotations;

namespace MvcBasic.Areas.Board.Models
{
    // 아래 경로의 아티클 참고함
    // http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx
    // Basic 클래스에서 사용할 유효성 검사 로직은 Basic_Validation에서 처리
    [MetadataType(typeof(Basic_Validation))]
    public partial class Basic
    {
        public class Basic_Validation
        {
            [Required(ErrorMessage="이름을 입력하세요...")]
            [StringLength(25, ErrorMessage = "이름은 25자 이하로 입력하세요...")]
            //[MvcBasic.Annotations.MinLength(3)] // 이름은 3자 이상
            [MvcBasic.Annotations.MinLength(3, ErrorMessage="이름을 정확히 입력하시오.")] // 이름은 3자 이상
            public string Name { get; set; }
            [Required(ErrorMessage="암호를 입력하세요....")]
            public string Password { get; set; }
            [RegularExpression("\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*",
                ErrorMessage = "이메일 형식이 틀립니다...")]
            public string Email { get; set; }
        }
    }

    // Custom Validator 만드는 로직은 따로 제공...
    // 위 코드 중 [MvcBasic.Annotations.MinLength(3)] 부분
}

 

 
이전 글   다음 글 삭제 수정 답변 글쓰기 리스트


관련 아티클 리스트
  제       목 파일 작성자 작성일 조회
이전글 닷넷코리아 블로그 메인 엔진을 DotNetNuke 5.5.0 버전으로 업그레이드 - Administrator 2010-09-04 3899
현재글 ASP.NET MVC 2 Custom Validation(사용자 정의 유효성 검사) ... - Administrator 2010-08-22 4422
다음글 Dell Studio XPS 16 노트북 소개 - Administrator 2010-08-20 3893
관련 페이지 리스트
numtitlenamedateview
388 C 언어에서 값 전달과 참조 전달(Call By Value and Call By Re... Administrator 2023-03-09 3570
387 병합 알고리즘 순서도 2022-10-22 5114
386 C 언어 강의: scanf를 엔터키를 기준으로 여러 행으로 값을 입력 받기 Administrator 2022-01-09 4410
385 C 언어: scanf 사용해서 표준 입력인 콘솔로부터 나이를 정수로 입력 받아 출력 Administrator 2022-01-07 3221
384 Java 코드 샘플 - Function 인터페이스로 람다 식 만들기 Administrator 2022-01-04 3120
383 C# 코드 샘플 - 널 조건부 연산자 사용하기 Administrator 2022-01-02 3156
382 C# 코드 샘플 - 널 병합 연산자와 default 키워드 Administrator 2022-01-02 3070
381 C# 코드 샘플 - 널 병합 연산자로 문자열 변수의 NULL 값 확인하기 Administrator 2022-01-02 2981
380 C# 강의 - 14세 미만 체크 메서드 구현 Administrator 2022-01-01 3036
379 C 언어 천 단위 콤마 찍기 thousands_separator.c Administrator 2021-12-30 4170
378 for 문 순서도 - for 문(for loop) 순서도(flowchart) Administrator 2021-12-28 6881
377 C 언어 코드 샘플 - 전처리기 - 조건부 컴파일 Administrator 2021-12-27 3058
376 C 언어 코드 샘플 - 전처리기 - 매크로 함수 Administrator 2021-12-27 3030
375 http-server 설치하기 - 로컬 루프백 주소로 웹페이지 실행 2021-12-27 3030
374 C 언어 코드 샘플 - N명의 학생의 점수를 입력받아 1차원 배열에 저장 후 총점 구... Administrator 2021-12-27 3085
373 Java 코드 샘플 - 두 수의 합을 구하는 함수 Administrator 2021-12-26 2961
372 C 언어 코드 샘플 - 두 수의 합을 구하는 함수 Administrator 2021-12-26 3005
371 C# 교과서 강좌 - LINQ - Select 확장 메서드에 익명 형식 사용하기 Administrator 2021-12-26 3125
370 C# 교과서 강의 - LINQ - Select 확장 메서드를 사용하여 새로운 형태로 ... Administrator 2021-12-26 3037
369 C 언어 코드 샘플 - static-shared - 정적(공유) 변수 사용하기 Administrator 2021-12-26 3055
 
 
 
손님 사용자 Anonymous (손님)
로그인 Home