문제

안녕하세요!

ASP.NET MVC는 GET/POST 주기 동안 입력 값을 내부에 저장하여 좋은 작업을 수행합니다. ModelState 유효성 검사 오류가 발생할 경우 자동으로 입력에 넣습니다.

하지만 내 양식에는 유효성 검사 오류 중에 유지하면 안 되는 CAPTCHA 필드가 있습니다(각 요청에서 CAPTCHA 값이 다시 생성됨).

나는 이것을 설정하여 달성하려고 노력했습니다.

if (TryUpdateModel(model))
{
    // ...
}
else
{
    ModelState.Remove("CaptchaValue"); // ModelState does have CaptchaValue 
    return View(model); // CaptchaValue is empty in model
}

하지만 작동하지 않습니다.

ModelState에 유지되지 않도록 모델 필드에 적용할 수 있는 속성이 있을 수 있습니까?

미리 감사드립니다!

도움이 되었습니까?

해결책 2

근처 스레드에서 이걸 찾았어요 MVC - 게시물의 텍스트 상자 값을 변경하는 방법은 무엇입니까?:

ModelState.SetModelValue("CaptchaValue", new ValueProviderResult(String.Empty, String.Empty, System.Threading.Thread.CurrentThread.CurrentCulture));

그런데 좀 별로인 것 같습니다.

다른 팁

모델 바인딩 동작을 제어하려면 작업 매개변수의 바인딩 속성을 사용할 수 있습니다.

public ActionResult YourActionName([Bind(Exclude = "CaptchaValue")]ModelType model)
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top