在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);
...
}
结果具有类型和许多其他信息,但不是实例。 表达式本身必须具有绑定在体内。我该如何梳理它?
答案 0 :(得分:4)
这很愚蠢。
html.Model contains the object instance.
而且
var value = expression.Compile().Invoke(html.ViewData.Model);
将使用lambda为您提供已评估模型实例的值。