如何获得此表达式值模型=>型号名称?

时间:2011-07-16 07:50:24

标签: c# .net expression-trees

我试图通过编译和调用来获得低于表达式的值但是我得到了一些错误,直到现在都没有成功。

public static void TextEditorFor<TModel, TProperty>(this System.Web.Mvc.HtmlHelper<TModel> html, Expression<Func<TModel, TProperty>> expression)
{
    var value = expression.Compile().Invoke(html.ViewData.Model);//problem that is value is null

}

2 个答案:

答案 0 :(得分:2)

(适用于 原始 问题)

鉴于签名,你应该只需要:

return Convert.ToString(
    expression.Compile().Invoke(modelInstance)
);

如果绝对需要,你也可以通过检查表达式来做到这一点。

答案 1 :(得分:0)

使用ModelMetadata.FromLambdaExpression Method,然后使用其属性Model