복습용 기술공부

c# 도메인 가져오기, Custom Validation 사용방법

01241 2023. 12. 18. 16:22

c# 도메인 가져올 때 _ 6.0V 기준

 

// 도메인 가져오기

string domain = HttpContext.Request.Host.Value;

 

// 도메인 및 path 가져오기
string path = HttpContext.Request.Path.Value;

 

path -> .ToLower()로 소문자 정리 후 사용하기!

 


 

Compare Validation -> 

 

[Compare("Name", ErrorMessage = "에러메시지")]

같은 값인지 아닌지 비교, 값이 다르면 validation 띄움

 

반대로 사용하고 싶을 경우 커스텀 Validation을 사용하기

 

step 1. Validation Class 추가

// Custom Validation 추가
public IEnumerable<ValidationResult> Validate()
{
    var results = new List<ValidationResult>();

    if (OldPassword == NewPassword)
    {
        results.Add(new ValidationResult(
            "기존의 비밀번호와 같은 비밀번호는 사용할 수 없습니다.",
            new[] { nameof(NewPassword) }));
    }

    return results;
}

 

step 2. Model 정의

InputModel inputModel = new InputModel();

--> 만약에 input 모델을 form으로 받고 있다면 아래의 방식으로

public async Task<IActionResult> OnPostAsync(InputModel inputModel)

step 3. Model 사용하기

// 모델 사용
var results = inputModel.Validate();
if (results.Any())
{
    foreach (var result in results)
    {
        ModelState.AddModelError(result.MemberNames.First(), result.ErrorMessage);
    }

    _logger.LogInformation("같은 비밀번호는 사용할 수 없습니다.");
    return Page();
}