MVC教学例程中的lambda表达式问题
ASP.NET和MVC都是新入门,所以基本概念不太清楚,请教各位高手:来源是MVC教学例程中的添加显示数据:http://www.asp.net/mvc/tutorials/mvc-5/introduction/accessing-your-models-data-from-a-controller
前面的这一行:
@Html.DisplayNameFor(model => model.Title)
用来显示model这个结构的变量名(Title),是不是用来显示左侧传入参数model的Title因此左侧的model不能改变?
后面的部分:
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Title)
</td>
<td>
@Html.DisplayFor(modelItem => item.ReleaseDate)
</td>
<td>
@Html.DisplayFor(modelItem => item.Genre)
</td>
<td>
@Html.DisplayFor(modelItem => item.Price)
</td>
<th>
@Html.DisplayFor(modelItem => item.Rating)
</th>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.ID }) |
@Html.ActionLink("Details", "Details", { id=item.ID }) |
@Html.ActionLink("Delete", "Delete", { id=item.ID })
</td>
</tr>
}
为什么lambda表达式的左侧可以用modelItem来表示呢?而且这些modelItem可以改为任何名字如
@Html.DisplayFor(model => item.Price)
@Html.DisplayFor(mem => item.Price)
@Html.DisplayFor(moItem => item.Price)
都可以,偏不能改成
@Html.DisplayFor(Model => item.Price)
//或者
@Html.DisplayFor(item => item.Price)
求问为什么前后两种方法有这个不同? --------------------编程问答-------------------- http://msdn.microsoft.com/en-us/library/bb397687.aspx
1百度百科,维基百科
2msdn --------------------编程问答--------------------
linq 是可以自定义的,至于MVC就不太清楚了!我MVC也在学习当中
补充:.NET技术 , ASP.NET