2010-06-08 4 views
0

강력하게 형식화되지 않은 뷰에서 데이터의 유효성 검사에 문제가 있습니다. 해당 뷰에서 3 가지 모델의 데이터를 업데이트하고 있으며 유효성 검증 메소드가 있지만 유효성 검증 메시지를 표시하는 방법을 모르겠습니다.약식 뷰에서의 ASP.NET MVC 유효성 확인

강력한 형식의 뷰는 ModelState에 넣으 려는데이 경우 이해가 안된다고 가정하고 어떻게 표시해야합니까? validationmessagefor ", 어쩌면"validationmessage ")?

답변

2

Asp.net MVC 유효성 검사는 강력하게 형식화가 쉽지만 강력하게 형식화되지 않은보기가 있으면 쉽게 수행 할 수 있습니다. 컨트롤러에 다음 작업이 있다고 가정하십시오.

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult Login(string userEmail, string password) 
{ 
    if (ValidateLogin(userEmail, password)) 
    { 
       //redirect 
    } 
    return View(); 
} 

및 검증 방법의 모양, 귀하의 의견 폴더에이 경우 에서보기에 지금

private bool ValidateLogin(string userEmail, string password) { if (String.IsNullOrEmpty(userEmail)) { ModelState.AddModelError("username", "You must specify a username."); } if (password == null || password.Length == 0) { ModelState.AddModelError("password", String.Format(CultureInfo.CurrentCulture, "You must specify a password.")); } return ModelState.IsValid; } 

, login.aspx
, 당신은이 방법으로 유효성 검사를 표시 할 수 있습니다.

<label for="useremail">User Email:</label> 
<%= Html.TextBox("useremail") %> 
<%= Html.ValidationMessage("useremail")%> 

이 외에도 유효성 검사 요약을 표시하거나 다음 도우미 방법을 사용하여 일반 방법을 표시 할 수도 있습니다.

<%= Html.ValidationSummary(true, "Please correct the errors.") %> 
+0

글쎄, 내가 어떻게했는지 (유효성 검사 요약없이 첫 번째 방법). 디버깅을하고 유효성 검사 메시지가 modelstate에 추가되었음을 알았지 만 내보기에는 해당 메시지가 표시되지 않습니다. 나는 틀린 일을하고있을 것이지만, 무엇을 몰라 : S. – Eedoh