2013-01-14 83 views
-2

我有一個IEnumerable ViewModel。這有相同的名稱,我只想選擇一個名稱並將其顯示在標題中。請建議。不同於Ienumerable模型

我的代碼如下。我試圖用不同的,但它不工作

@foreach (var item in Model.abc) 
{ 
    { 
     <table> 
      <tr> 
      <td style="width:100px" >@Html.Label("Name")</td> 
      <td style="width:225px"> @Html.DisplayTextFor(model => item.Name.Distinct())</td> 
      </tr> 
     </table> 
    } 
} 

更具體地講:我的結果將只有名稱{a,a,a,a,a}所以我只是想接單{a}並顯示它。

+0

如果鮮明返回多個結果?你想在標題中顯示哪一個? –

+0

有許多名稱是相同的值。我需要不同的名字。 – Rash

+0

但是如果在你的模型中你有以下名字,例如'{Foo,Foo,Bar,Bar,Baz}',那麼Distinct的結果就是'{Foo,Bar,Baz}'。所以我再次重複我的問題:'如果Distinct返回多個結果會怎樣?你想在頭文件中顯示哪一個?'你知道'Distinct'擴展方法做什麼,它返回什麼? –

回答

1

這有相同的名稱,我想只選擇一個名稱,並在標題中顯示 。

如果他們都是相同的,假設Name工具IEnumerable你可以嘗試First

更新:一個新的屬性添加到您的模型

otherProperty = item.Name.First(); 

然後:

@Html.DisplayTextFor(model => item.otherProperty) 
+0

這不起作用。您不能將這樣的lambda表達式傳遞給HTML助手。他們根本不會理解它。 –

+0

是不是在工作 – Rash

+0

@DarinDimitrov,你是對的。我更新了我的答案,其中包括向模型中添加新屬性 – Ulises

0

使用此代碼在您的應用程序

@foreach (var item in Model.Select(x => x.Title).Distinct()) 
{ 
<option>@item</option> 
} 

可以使用@html.display(X=>item)代替@item

相關問題