상세 컨텐츠

본문 제목

[.NET Core/EF Core] EF Core Custom Validation Attribute 만들기

Programing/.NET Core

by 호짱 HoZang 2020. 10. 16. 16:53

본문

[.NET Core/EF Core] EF Core Custom Validation Attribute 만들기

 

1. Attribute class 생성

// 여러개의 Validation attrebute를 같이 사용한다면
// AllowMultiple = true로 설정해준다.
// 아래 Stackoverflow 링크 글에선 false로 되어있다.
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Method | AttributeTargets.Parameter | AttributeTargets.Property, AllowMultiple = true)]
public class ValidDecimalAttribute : ValidationAttribute
{
    protected override ValidationResult IsValid(object value, ValidationContext validationContext)
    {
        if (value == null)
        {
            return null == ErrorMessage || "" == ErrorMessage ? new ValidationResult("숫자로 입력해주세요") : new ValidationResult(ErrorMessage);
        }
        
        decimal d;
        return !decimal.TryParse(value.ToString(), out d) ? new ValidationResult(ErrorMessage) : ValidationResult.Success;
    }
}

 

2. Model 클래서에서 사용

public class Movie
{
    .
    .
    .
    [Display(Name = "가격")]
    [Range(1, 100, ErrorMessage = "가격은 1부터 100까지 숫자로 입력해주세요.")]
    [ValidDecimal(ErrorMessage = "가격은 숫자로 입력해주세요.")]
    [Column(TypeName = "decimal(18, 2)")]
    public decimal? Price { get; set; }
    .
    .
    .
}

 

[참고한 글]

stackoverflow.com/questions/48349697/how-to-change-type-validation-error-messages

 

how to change type validation error messages?

I'm using entity framework code first in an ASP MVC project, and I'd like to change the error message that appears for validation of a numeric type. I have a property like public decimal Amount1 ...

stackoverflow.com

 

docs.microsoft.com/ko-kr/aspnet/core/mvc/models/validation?view=aspnetcore-3.1#custom-attributes

 

ASP.NET Core MVC의 모델 유효성 검사

MVC 및 페이지 ASP.NET Core의 모델 유효성 검사에 대해 알아봅니다 Razor .

docs.microsoft.com

 

관련글 더보기

댓글 영역