2009-10-07 5 views
9

Html.ValidationSummary()는 모델 상태가 유효하더라도 여전히 렌더링 중입니다.ASP.Net MVC : 오류가있는 경우에만 Html.ValidationSummary 렌더링

이 예제는 작동하지 않습니다 렌더링되는 빈 'UL'태그가 여전히있다

<% if (!this.ViewData.ModelState.IsValid) 
{ %> 
<%= Html.ValidationSummary()%> 
<% } %> 

. ModelState가 유효하지 않은 경우 으로 렌더링하려면 어떻게해야합니까? 그것은 명백한 이유가 바로 무효이다,

편집 는 ModelState 정말 잘못된 밝혀,하지만 내 코드는 오류 메시지를 추가하지 않습니다. 귀하가 제공하는 정보가 정확하면

[AcceptVerbs("POST")] 
public ActionResult Login(string username, string password, bool? remember) 
    { 
     if (string.IsNullOrEmpty(username)) 
     { 
      ModelState.AddModelError("Username", "Username is required"); 
     } 
     if (string.IsNullOrEmpty(password)) 
     { 
      ModelState.AddModelError("Password", "Password is required"); 
     } 

     if (ModelState.IsValid) 
     { 
      ; // this point is never reached 
     } 

     return View(); 
    } 

답변

6

, 다음 this.ViewData.ModelState.IsValid 가장 확실히 false입니다. 여기에 제공하지 않는 다른 코드가 있어야합니다.

2

source code은 모델 상태가 유효하면 도우미가 null 문자열을 반환한다고 말합니다. 귀하의 모델 상태가 실제로 유효하지 않지만 메시지가 추가되지 않았다고 의심됩니다. 또는 마크 업이 실제로 다른 페이지에서 오는 것일 수도 있습니다. 자바 스크립트를 추가 할 수도 있습니다.

1

앱 설정에서 ClientValidationEnabledUnobtrusiveJavaScriptEnabled을 확인하십시오. 사용하지 않을 경우 사용하지 않으면이 문제가 해결 될 수 있습니다.

관련 문제