在下面的代码中,MVC4如何知道变量“foo”的类型是IEnumerable
@model IEnumerable<Xrm.Contact>
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Index</h2>
@foreach (var c in Model) {
<div>
<span> @Html.DisplayFor(foo => c.FirstName) </span>
<span> @Html.DisplayFor(foo => c.LastName) </span>
</div>
}
答案 0 :(得分:4)
您当前的视图有一个属性Html
,其类型为HtmlHelper<TModel>
,其中TModel
是您在@model
指令顶部声明的任何类型文件。因此,当您使用Html
调用DisplayFor
扩展方法时,编译器可以推断您将在第二个参数中提供的表达式的类型。
因为当前模型是IEnumerable<Xrm.Contact>
,所以它假设参数为。