如何在强类型HtmlHelper扩展中获取模型表达式的一部分

时间:2011-05-12 11:48:50

标签: c# asp.net-mvc-3 html-helper

好吧,我说我有以下型号:

public class bar{
    public string bar {get; set; }
}

public class foo{
    public bar mybar{get; set;}
    public string anotherproperty{get; set;}
}

在UI中我想这样做:

@Html.MyWhackyHelperFor(x=>x.bar)

使用:

public static MvcHtmlString MyWhackyHelperFor<TModel, TValue>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TValue>> expression){
//how can i get a the actual bar object here?
}

如何获得所引用模型的实际部分?

1 个答案:

答案 0 :(得分:3)

您需要将表达式编译为方法,然后调用方法:

TValue val = expression.Compile()(htmlhelper.ViewData.Model);