2012-07-12 5 views
2

Google 및 스택 오버플로에서 일부 검색을 수행했지만이 답변을 찾을 수 없습니다.MVC3보기에서 속성 오류를 제외하고 ModelState 검사

는 나는 내가 모델 오류에만 관심이 있지만, 속성 오류가 발견되면 테스트가 true를 돌려줍니다 내보기

@if (!Html.ViewData.ModelState.IsValid) 
{ 
    @Html.ValidationSummary(true)<br /> 
} 

에 다음 있습니다. 모델 오류 만 테스트하려면 어떻게합니까?

여기서 명확하게해야 할 수도 있습니다. 속성 오류가 있지만 모델 오류가 없을 때 <br />이 기록되지 않도록 테스트를 수행하고 싶습니다. 당신의 ValidationSummary의 소스에 가면

답변

1

, 당신은

그래서
IEnumerable<ModelState> modelStates = null; 
if (excludePropertyErrors) { 
    ModelState ms; 
    htmlHelper.ViewData.ModelState.TryGetValue(htmlHelper.ViewData.TemplateInfo.HtmlFieldPrefix, out ms); 
    if (ms != null) { 
     modelStates = new ModelState[] { ms }; 
    } 
} 
else { 
    modelStates = htmlHelper.ViewData.ModelState.Values; 
} 

난 당신이 내가 틀렸다면 그

public static bool ModelStateHasModelErrors(this HtmlHelper htmlHelper) { 
    ModelState ms; 
    htmlHelper.ViewData.ModelState.TryGetValue(htmlHelper.ViewData.TemplateInfo.HtmlFieldPrefix, out ms); 
    return ms != null; 
} 
+0

같은 방법은 저를 수정 할 수 있다고 생각하지만 쇼에 찾을 수 있습니다 모델 오류는 매개 변수가 true로 설정되어야합니다. 나는 원래의 포스트를 편집하여 내가 성취하려는 것을 명확히하려고 노력했다. – WhiteWade

+0

@WhiteWade 오, 이런, 네 말이 맞아. 미안. 음, 편집되었지만 도움이되지 않습니다. 나는 더 나은 방법을 찾으려고 노력할 것이다. –

+0

@WhiteWade 편집을 참조하십시오. 더 나은 (아직 테스트되지 않은) 것일 수 있습니다. –