2010-11-24 14 views
0

Woher weiß Microsoft MVC, dass der Name der Eigenschaft "Telefon" ist, da wir nur die Objektinstanz und einen Wert der Eigenschaften haben?Get Property-Name von seinem Wert

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

Antwort

3

Sie haben nicht Wert der Unterkunft bekam - Sie expression tree haben, die Sie, wie Sie den Wert von einem Element zu erhalten. Dieser Ausdrucksbaum kann vom Framework analysiert werden, um den Namen der Eigenschaft zu finden.

Nun, wenn es

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

dann dass bekommen würde wirklich sein nur den Wert ... aber der Lambda-Ausdruck in einen Ausdrucksbaum wird von der C# Compiler konvertiert.

+0

Schön! Funktionieren alle Lambda-Ausdrücke so oder ist das ein Sonderfall? – Eduardo