我正在尝试编写一个强类型助手
这将是这样的:

Html.Lookup(x => x.FooId);

现在我有这个:
public static MvcHtmlString Lookup<T,TReturn>(this HtmlHelper<T> html, Func<T, TReturn> expression)
{
     // get string "FooId" here
}

有谁知道如何得到这个?

最佳答案

public static class ExpressionsExtractor
{
    public static string Lookup<T, TProp>(this HtmlHelper<T> html, Expression<Func<T, TProp>> expression)
    {
        var memberExpression = expression.Body as MemberExpression;

        if (memberExpression == null)
            return null;

        return memberExpression.Member.Name;
    }
}

然后,您可以使用以下命令调用它:
var propName = Html.Lookup(x => x.FooId);

关于c# - 从表达式中获取字符串属性名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3778598/

10-13 03:12