2011-01-27 5 views
2

htmlhelper에서 다음 코드를 사용하면 메타 데이터가 제공됩니다. 컨테이너 유형도 있습니다. 내가 원하는 것은 컨테이너 인스턴스입니다. 표현식에서HtmlHelper에서 객체 인스턴스 가져 오기

x => x.FirstName 

나는 x 인스턴스에 가고 싶다.

그렇게 할 방법이 있습니까?

public static MvcHtmlString DisplayEditorFor<TModel, TValue>(this HtmlHelper<TModel> html, Expression<Func<TModel, TValue>> expression, string templateName, string htmlFieldName, object additionalViewData) 
    { 
     var result = ModelMetadata.FromLambdaExpression(expression, html.ViewData); 
     ... 
    } 

결과에는 유형 및 기타 정보가 있지만 인스턴스는 없습니다. 표현식 자체는 본문에 바인딩되어 있어야합니다. 나는 그것을 어떻게 알아 내야 하나?

답변

4

이것은 바보 같았습니다.

html.Model contains the object instance. 

는 또한

var value = expression.Compile().Invoke(html.ViewData.Model); 

당신에게 람다를 사용하여 평가 모델 인스턴스의 값을 제공 할 것입니다.

관련 문제