如何获取调用表达式的参数?

时间:2013-04-14 18:22:51

标签: c# expression

给出以下代码:

public static MvcHtmlString InlineEditable<T,TP>(this HtmlHelper helper, Expression<Func<T,TP>> fieldSelector)
{
    var compiledFieldSelector = fieldSelector.Compile();
    T argument = ????;
    TP value = compiledFieldSelector(argument);
    return new MvcHtmlString(GetInlineEditableMarkupInternal(helper, fieldSelector) + value);
}

如何获取参数的值?

我已经尝试过查看Expression.Parameters集合,其中有一些东西但是我似乎无法找到我传入的实际T?

我称之为

@Html.InlineEditable(x=>x.Property)

在Razor视图中。

1 个答案:

答案 0 :(得分:1)

试试这个

 public static MvcHtmlString InlineEditable<T,TP>(this HtmlHelper<T> helper, Expression<Func<T,TP>> fieldSelector)
 {
     var compiledFieldSelector = fieldSelector.Compile();
     var arg = helper.ViewData.Model;
     var value = compiledFieldSelector(arg);
     ....
 }