Asp.net
在 ASP.NET MVC 2 中實現 DropDownList 的最佳方式?
我試圖了解使用幫助程序
DropDownList在 ASP.NET MVC 2中實現 a 的最佳方法。DropDownListFor這是一個多部分的問題。首先,將列表數據傳遞給視圖的最佳方式是什麼?
SelectList使用包含數據的屬性傳遞模型中的列表- 通過傳遞列表
ViewData如何在 中獲得空白值
DropDownList?我應該SelectList在創建它時將它建構到,還是有其他方法告訴助手自動創建一個空值?最後,如果由於某種原因出現伺服器端錯誤並且我需要使用 重新顯示螢幕
DropDownList,我是否需要再次獲取列表值以傳遞到視圖模型?這些數據不會在文章之間維護(至少當我通過我的視圖模型傳遞它時不會)所以我打算再次獲取它(它被記憶體)。我這樣做對嗎?
你最好的選擇是在你的控制器中創建一個 SelectList - 在這裡使用我的擴展方法:http: //blog.wekeroad.com/2010/01/20/my-favorite-helpers-for-aspnet-mvc
使用與您的屬性名稱相同的鍵將其彈出到 ViewData 中:
ViewData["statusid"]=MySelectList然後只需使用
Html.DropDownFor(x=>x.StatusID)就可以了。
部分回答:
- 恕我直言,最好的方法是
ViewModel像這樣傳遞列表:public SelectList Colors { get { // Getting a list of Colors from the database for example... List<Color> colors = GetColors().ToList(); // Returning a SelectList to be used on the View side return new SelectList(colors, "Value", "Name"); } }
- 要獲得空白或預設選項,例如( – Pick a color – ),您可以在視圖側執行此操作:
@Html.DropDownListFor(m => m.Color, Model.Colors, "-- Pick a color --")
- 如果列表是
ViewModel.看看下面的部落格文章。它可以給你一些提示: