암호 확인 입력란에 대한 유효성 검사 유효성 검사와 암호가 최소 문자 수에 맞는지 확인하는 서버 유효성 검사가 있습니다.ASP.NET MVC의 "비교"유효성 검사가 제대로 작동하지 않습니다.
보기 :
@Html.PasswordFor(model => model.password)
@Html.PasswordFor(model => model.repeatPassword)
모델 :
public class Model_Clerk
{
public int clerkID { get; set; }
public string password { get; set; }
[Compare("password", ErrorMessage = "Error comparing password and password confirm values")]
public string repeatPassword { get; set; }
}
컨트롤러 액션 메소드 :
서버 유효성 검사 경고 메시지가 올바르게 표시하고, 그 후 비교 실행public ActionResult SaveClerk(Model_Clerk model)
{
//Password minimum lenght
if (!string.IsNullOrEmpty(model.password) && model.password.Trim().Length < 5)
{
ModelState.AddModelError(model.password, "Password must be at least 5 characters long");
}
if (ModelState.IsValid)
{
//Save logic here...
}
else
{
return PartialView("EditClerks", model);
}
}
유효성 검사가 더 이상 작동하지 않습니다. 어떤 생각?
[StringLength (5, ErrorMessage = "암호는 적어도 5 자 이상이어야합니다., MinimumLength = 5)]'암호 속성에서 '[Required]'를 모두에 추가하십시오 –
사실 I 더 많은 서버 유효성 검사가 있지만 사실은 ModelState.AddModelError 메서드를 사용하여 서버 유효성 검사 중 하나를 실행 한 후에 비교 유효성 검사가 제대로 작동하지 않는 것 같습니다. 항상 두 필드가 비어있는 경우에도 비교 된 값이 같지 않다고 말합니다. 클라이언트 측에서 일부 문제가 발생하지만, 무엇을 모릅니다. 어쨌든 팁을 주셔서 감사합니다, 나는 StringLength 주석의 "MinimumLength"에 대해 몰랐습니다. –
당신은'[Required]'가 없기 때문에 문제가 될 수도 있습니다. 이것을 추가하고 업데이트 해주세요. –