2011-09-07 45 views
17

我有一大堆的下拉列表在我看來,像這樣的:的SelectList與空選擇

@Html.DropDownListFor(model => model.Process, Model.ProcessList) 

他們都採取在SelectList基於這樣從一個數據庫表中的數據:

ProcessList = new SelectList(_db.Processes, "ID", "Name"); 

其中_db.Processes返回ObjectSet<Process>

我遇到的問題是,有時由下拉列表設置的屬性可能無法選擇,即null。我如何能null選擇添加到SelectList>

回答

25
@Html.DropDownListFor(model => model.Process, Model.ProcessList,"--Select Process--") 

上面一行將在選擇列表的頂部添加--select process--如果選擇此值,空字符串將被公佈並綁定屬性將被設置爲null (在這種情況下的處理)

+0

我發現這個問題。當您提供'optionLabel'參數時,下拉列表不再選擇基於SelectList'selectedValue'參數的當前項目。編輯時始終選擇默認選項。有什麼建議麼? –

+0

只有當模型的相關屬性不包含任何值時纔會發生。例如,如果'model.Process'的值爲null或列表中不存在的東西,它將默認選擇標籤。 –

+3

我發現只要向列表中添加一個空條目(通過模型或通過標籤選項),默認情況下它只會選擇第一個條目。我已經切換到使用KendoUI DropDownList和問題消失了,所以我認爲它可能是一個標準DropDownList(或我的項目配置)的錯誤。 KendoUI的下拉菜單在所有條目中都需要一個非空值(例如0),所以它不是一個完美的解決方案。 –