2014-11-24 3 views
1

Model과 ModelState가 일치하지 않을 때 편집기 템플릿을 구현하는 데 도움을주십시오.ModelState를 사용하는 편집기 템플릿을 정의하십시오.

예 : Model.A == 'x', ViewData.ModelState [ 'A'] == 'y'.

양식이 잘못 게시 될 때 발생할 수 있습니다.

네이티브 템플릿은 이것을 고려하여 ModelState에서 올바른 값을 표시합니다. 그러나 나는 그들의 근원을 찾을 수 없었다.

나는 이것을 내 자체 테스트에서 구현해야한다. 그냥 ModelState에서 현재 값을 확인하고 설정되어있는 경우 사용해야합니다. 아니면 더 나은 방법을 제안 해 주시겠습니까?

+0

이것을 고려한 내장 된 HTML 도우미 메서드를 사용하십시오. 당신은 무엇을 렌더링하려고합니까? –

+0

필드를 편집하는 자바 스크립트 구성 요소입니다. Html.HiddenFor 메서드로 초기 값을 저장하여이 문제를 해결했습니다. 이전에 나는

과 같은 값을 저장했습니다. –

답변

1

HtmlHelpers (편집자)를 살펴본 결과이 기능이 생겼습니다.

var value = Model; //value according to the model 
var fieldName = ViewData.TemplateInfo.GetFullHtmlFieldName(""); 
ModelState modelState; 
if(ViewData.ModelState.TryGetValue(fieldName, out modelState) && modelState.Value != null) 
{ 
    value = (int?) modelState.Value.ConvertTo(typeof(int?), null); 
} 

는 이제 모델 값 또는 게시 ModelState 값합니다 (attemptedValue)를 포함 예에서 모델/값은 정수입니다.

관련 문제