Programing

ModelState.AddModelError-속성이 아닌 오류를 어떻게 추가합니까?

lottogame 2020. 5. 19. 08:03
반응형

ModelState.AddModelError-속성이 아닌 오류를 어떻게 추가합니까?


데이터베이스 Create(FooViewModel fvm){...}를 확인하여 fvm.prop1fvm.prop2이 조합에 이미 있는지 확인합니다 . 그렇다면 모델 상태에 오류를 추가하고 전체보기를 반환하고 싶습니다. 나는 시도했다 :

public ActionResult Create(FooViewModel fvm){
    if (ThatComboAlreadyExists(fvm)) {
      ModelState.AddModelError("Model", "There is already one like that");
      return View(fvm);
    }
}

...하지만에 오류가 표시되지 Html.ValidationSummary않습니다. '모델'이 올바른 키가 아니라는 의심이 있지만 구글에서 찾을 수 없었습니다.


나는 결국 내가 찾던 사용법 의 예우연히 발견 했다. 평소와 같이 호출하는 속성 중 하나가 아니라 모델에 오류를 할당하는 것이 일반적이다.

ModelState.AddModelError(string key, string errorMessage);

그러나 키에 빈 문자열을 사용하십시오.

ModelState.AddModelError(string.Empty, "There is something wrong with Foo.");

오류 메시지가 <%: Html.ValidationSummary() %>예상대로 표시됩니다 .


모델의 모든 속성에 모델 오류를 추가 할 수 있습니다. 새 속성을 만드는 것과 관련이없는 것이 좋습니다.

예를 들어 전자 메일이 DB에서 이미 사용 중인지 확인하고 조치에서 Email 속성에 오류를 추가하여보기를 반환 할 때 오류가 있음을 알고 사용하여 표시하는 방법

<%: Html.ValidationSummary(true)%>
<%: Html.ValidationMessageFor(model => model.Email) %>

ModelState.AddModelError("Email", Resources.EmailInUse);

모델 도트 속성을 문자열에 넣는 것이 나를 위해 일했습니다. ModelState.AddModelError("Item1.Month", "This is not a valid date");

참고 URL : https://stackoverflow.com/questions/5739362/modelstate-addmodelerror-how-can-i-add-an-error-that-isnt-for-a-property

반응형