linq / lambda中的Asp.net mvc html.DisplayFor语法

时间:2013-01-07 10:39:44

标签: c# asp.net asp.net-mvc razor

我正在学习asp.net mvc,我刚刚开始,我决定从网页表格转移到mvc。

我理解linq和lambdas的基础知识,但我想知道或得到关于这种特定语法的一个很好的解释。

@model IEnumerable<CodeplexMvcMusicStore.Models.Album>

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.Genre.Name)
        </td>

我想知道modelItem => item.Genre.Name

的含义是什么

我对此的了解是,modelItem获取值item.Genre.Name,然后传递方法Html.DisplayFor()

我也很好奇如何在不使用lambda的情况下编写相同的代码。

如果我错了,请纠正我,我只想知道代码的含义以及如何阅读。

2 个答案:

答案 0 :(得分:5)

阅读本文: Why All The Lambdas? :解释Lambdas使用的好文章。

lambda表达式(Expression类型)允许视图作者使用强类型代码,同时为HTML帮助者提供完成工作所需的所有数据。

答案 1 :(得分:1)

你可以写

    @model IEnumerable<CodeplexMvcMusicStore.Models.Album>

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.Raw(item.Genre.Name)
        </td>

或者

@model IEnumerable<CodeplexMvcMusicStore.Models.Album>

@foreach (var item in Model) {
    <tr>
        <td>
            @item.Genre.Name
        </td>