2010-06-16 2 views
0

이전에 서버에서 클라이언트로 라운드 트립되어 멋지게 돌아가는 (예 : 편집 및보기 양식이 정상적으로 처리 된) 객체가 있습니다. 그러나, 나는 그 객체에 복잡한 타입을 추가하고이를 다루기 위해 커스텀 ModelBinder를 만들었다. 복합 유형은 단일 문자열로 표현 될 수 있지만 오브젝트에 Decimal로 저장됩니다 ("0 피트 3 인치"는 0.25로 저장 될 수 있다고 생각하십시오).MVC 2, 사용자 정의 ModelBinder 및 뷰에 "시도한 값"저장

그러나 문제는 유효성 검사가 실패하는 것입니다. 사용자가 "asdf"를 입력하면 유효성 검사가 실패합니다. 하지만 Decimal에 저장되는 것은 0뿐입니다. 따라서 뷰가 렌더링되어 사용자에게 전송되면 "asdf"가 아닌 "0"과 오류 메시지가 표시됩니다. 기본 ModelBinder (다른 필드 왕복 잘못된 문자열을 그냥 잘)이 문제가 없어, 그래서 내 사용자 지정 ModelBinder 뭔가를 놓치고 있어야합니다 ...하지만 그것은 무엇입니까?

나는

bindingContext.ModelState.SetModelValue(bindingContext.ModelName, New ValueProviderResult(null, attemptedValue, Globalization.CultureInfo.CurrentCulture)) 

를 호출 시도했다 그러나 아무것도에 영향을 미칠 것 같지 않습니다.

답변

관련 문제