从它的价值获取属性名称

时间:2010-11-24 21:14:50

标签: asp.net-mvc reflection delegates lambda

Microsoft MVC如何知道该属性的名称是“Phone”,因为我们只有对象实例及其中一个属性的值?

<%: Html.TextBoxFor(x => x.Phone) %>

2 个答案:

答案 0 :(得分:3)

您还没有获得该属性的 - 您有一个expression tree,它告诉您如何从项目中获取值。框架可以分析该表达式树以查找属性名称。

现在如果是

<%: Html.TextBoxFor(x.Phone) %>

然后 真的只是获取值...但是lambda表达式正由C#编译器转换为表达式树。

答案 1 :(得分:3)