2013-01-07 96 views
3

我目前正在學習asp.net mvc,我剛開始,我決定從web表單移到mvc。Asp.net mvc html.DisplayFor語法linq/lambda

我瞭解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的情況下編寫相同的代碼。

糾正我,如果我錯了我只想知道代碼的含義以及它是如何讀取的。

+0

請參見:http://stackoverflow.com/questions/5848940/mvc-html-helpers-and-lambda-expressions – Faust

回答

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> 
5

閱讀原因:Why All The Lambdas?:好文章解釋了使用蘭姆達斯。

lambda表達式(類型爲Expression)允許視圖作者使用強類型代碼,同時爲HTML幫助器提供執行該作業所需的所有數據。