我有一個循環在我的視圖代碼中創建一個表單。在表格的每個項目都有自己的下拉列表中,他們所有的份額從視圖數據:在視圖代碼中設置下拉列表中的選定項目
<%foreach(Foo i in Model){ %>
<tr>
<td><%=i.title%></td>
<td><%=Html.DropDownList("order"+i.id.ToString(), ViewData["SequenceDropDown"] as SelectList)%></td>
</tr>
<%} %>
我需要它,因此選擇的項目是基於美孚(i.Sequence)的屬性。我似乎找不到辦法做到這一點?
我可以在控制器中做到這一點,但我希望能夠在所有項目中共享選擇列表並相應地選擇所選項目。
是的,但然後視圖將不得不根據項目是什麼在視圖數據中選擇正確的項目。這對我來說會使代碼變得更加笨拙,當然也不會讓視圖變得愚蠢 – qui 2009-12-15 16:22:28
當您在Action中創建SelectList時,您可以像http://msdn.microsoft.com/en-us/library/中那樣定義所選項目dd492553.aspx,所有View然後需要遍歷ViewData數組的選擇列表(與您的Model迭代器同步)並實例化下拉列表。理想情況下,您可以擴展您的Foo對象以包含SelectList對象,或者在此上下文中使用用於顯示Foo的中間對象。 – Lazarus 2009-12-15 16:42:25
您當然不需要這樣做,但它絕對可以讓視圖更易於閱讀。 – 2009-12-16 05:56:30