title: How does @Html.TextBoxFor know that I am referring to the property of the model instead of the value returned by the property?
body: <p>Normally in lamda a expression such as 
  <code>(x =&gt; x.FirstName)</code> the lamda would return the value of "FirstName" (presumably a string) but some how
  <code>@Html.TextBoxFor(x =&gt; x.FirstName)</code> knows that I am referring to the property "FirstName" and not the value returned by FirstName. What C# or compiler technique is being used for achieve this? I tried reading through the MVC source code but it went over my head.</p>