2011-08-06 4 views
2

일부 입력 특성을 기반으로 컨트롤을 생성하려는 텍스트 상자 컨트롤에 대한 사용자 지정 컨트롤을 작성하려고하는데 GetModelStateValue에 액세스 할 수 없습니다. 내 사용자 지정 컨트롤.asp.net mvc2에서 사용자 지정 컨트롤의 GetModelStateValue에 액세스 할 수 없습니다.

어떻게해야합니까?

+0

지금까지 해보신 것은 무엇입니까? 코드를 보여주십시오. 코드에서 작동하지 않는 것은 무엇이며 달성하려는 것은 무엇입니까? 귀하의 질문은 무엇인가? –

답변

23

해당 메소드가 내부 메소드로 표시되어 있기 때문에 액세스 할 수 없습니다. 가능한 최선의 방법은 MVC 소스 코드를 복제하고 액세스 할 수있는 어딘가에 그 메서드를 배치하는 것입니다. 다음을 사용할 수 있습니다. ViewData에 액세스하려면 htmlHelper 객체를 전달해야합니다.

static object GetModelStateValue(HtmlHelper htmlHelper, string key, Type destinationType) 
{ 
    ModelState modelState; 
    if (htmlHelper.ViewData.ModelState.TryGetValue(key, out modelState)) 
    { 
     if (modelState.Value != null) 
     { 
      return modelState.Value.ConvertTo(destinationType, null /* culture */); 
     } 
    } 
    return null; 
} 
관련 문제