2011-09-07 43 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),所以它不是一个完美的解决方案。 –