从表达式中获取字符串属性名称
我正在尝试编写一个强类型助手 这将是这样的:
Html.Lookup(x => x.FooId);
现在我有这个:
public static MvcHtmlString Lookup<T,TReturn>(this HtmlHelper<T> html, Func<T, TReturn> expression)
{
// get string "FooId" here
}
有人知道如何得到这个吗?
I'm trying to write a strongly typed helper
which would be something like this:
Html.Lookup(x => x.FooId);
for now I have this:
public static MvcHtmlString Lookup<T,TReturn>(this HtmlHelper<T> html, Func<T, TReturn> expression)
{
// get string "FooId" here
}
Anybody knows how to get this ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
目前,当我在不应该存在
System.Web.Mvc
引用的 Web 项目之外需要此功能时,正在使用此类:这个类的优点是 - 当深入到一个以上时,它不会丢失点等级。
Currently using this class when I need this functionality outside of web project where
System.Web.Mvc
reference shouldn't exist:Good thing about this one is - it does not lose dots when going deeper than just one level.
有点晚了,但我发布了一个在 .Net 4 中为我工作的简单解决方案。它在第 4 行处理值类型
a bit late but I am posting a simple solution that's working for me in .Net 4. It has handling for value types on line 4
然后你可以这样调用它:
You would then call it with:
还有一个代码。
使用ExpressionHelper类。
Func是委托,Expression是在编译时生成ExpressionTree。
Expression.Compile() 返回委托,但 Func 在运行时未获取 ExpressionTree。
Yet another code.
Use ExpressionHelper class.
Func is delegate, Expression is generate ExpressionTree at compile time.
Expression.Compile() return delegate, but Func don't get ExpressionTree at runtime.