2010-02-24 6 views
2

Html.EditorFor를 사용하고 내 ViewModel을 전달할 때 각 개별 양식 요소에 오류 메시지가 표시되지 않도록 할 수 있습니다.Html.EditorFor 유효성 검사 메시지

유효성 검사 요약을 사용하고 있으므로 오류 메시지가 두 번 표시됩니다. 양식 요소에 대해 한 번, 요약에 다시 입력하십시오.

답변

0

아래 예와 같이 "*"를 사용하여 ValidationMessage에서 오류 메시지를 제거하면 개별 오류를 제거 할 수 있습니다. 그러나 오류 메시지가 전달 된 경우 오류 메시지가 표시됩니다.

<%= Html.ValidationMessage("PropertyName", "*") %> 

그러나 오류 메시지가 전달되면 표시됩니다. 도움이

Html.ValidationMessageFor(m=>m.prop,...) 

희망,

에디 아래와 같이 이것은 또한 편집기 템플릿 또는 Html.Helper의 새로운 람다 버전을 사용하는 사실이다

당신은 지정 유효성 검사 요약을 작성하고 추가 할 수 있습니다
0

내가 _form을 사용하여이 예에서 특수 키 (귀하의 모든 오류 예를 들면 다음과 같습니다.

 private const string VALIDATIONSUMMARY_HMTL = "<div class=\"input-validation-error\">{0}</div>"; 

public static string ValidationSummary(this HtmlHelper helper, bool customErrorOnly) 
    { 
     return ValidationSummary(helper, customErrorOnly, "_FORM"); 
    } 

    public static string ValidationSummary(this HtmlHelper helper, bool customErrorOnly, string errorName) 
    { 
     if (helper.ViewData.ModelState.IsValid) 
     { 
      return null; 
     } 

     string list = "<ul>"; 
     bool displayList = false; 
     foreach (KeyValuePair<string, ModelState> pair in helper.ViewData.ModelState) 
     { 
      foreach (ModelError error in pair.Value.Errors) 
      { 
       if (pair.Key.ToUpper() == "_FORM" || !customErrorOnly) 
       { 
        list += "<li>" + error.ErrorMessage + "</li>"; 
        displayList = true; 
       } 
      } 
     } 
     list += "</ul>"; 

     if (!displayList) 
     { 
      return null; 
     } 

     return string.Format(VALIDATIONSUMMARY_HMTL, list); 
    } 

특정 오류를 추가 할

:

ViewData.ModelState.AddModelError("_FORM", "My error message"); 
관련 문제