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

标签 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 View 中。

最佳答案

试试这个

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

关于c# - 如何获取调用表达式的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16002673/

相关文章:

c# - 无法在asp.net core mvc中调用具有带有[FromBody]属性的类参数的API Post方法

C# 将 List<ushort> 转换为 List<short>

linux - expr 的意外行为

javascript - 将 C# 列表(多个)转换为 JavaScript 关联数组

c# - 我可以在 Blazor 中有多个 _Host.chstml 文件吗?

c# - 如何使用一系列键搜索 C# 字典?

c++ - C表达式的评估

c# - 在通用参数中使用多态性

c - 在 C 中,为什么在单独的语句中定义全局变量会引发警告,但对于局部变量却可以?

expression - 如何找到语法中哪个运算符具有最高优先级