从HtmlHelper获取对象实例

时间:2011-01-27 09:52:19

标签: model-view-controller lambda types html-helper

在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);
        ...
    }

结果具有类型和许多其他信息,但不是实例。 表达式本身必须具有绑定在体内。我该如何梳理它?

1 个答案:

答案 0 :(得分:4)

这很愚蠢。

html.Model contains the object instance.

而且

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

将使用lambda为您提供已评估模型实例的值。