如何得到这个表达式值模型=>model.Name

本文关键字:模型 model Name 表达式 何得 | 更新日期: 2023-09-27 18:02:34

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

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
}

如何得到这个表达式值模型=>model.Name

(适用于原始问题)

给定签名,您应该只需要:

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

如果绝对需要,也可以通过检查表达式来完成。

使用ModelMetadata。FromLambdaExpression方法和它的属性Model