2014-04-23 41 views
0
@Html.DropDownListFor(model => model[i].InformationType, new List<SelectListItem> 
{ 
    new SelectListItem{ Text = "Car", Value = "01" }, 
    new SelectListItem{ Text = "Home", Value = "02" }, 
    new SelectListItem{ Text = "Boat", Value = "03" } 
}, "--none--") 

上面在我的视图中创建了一个下拉列表,但是它不会在传递给视图的值上打开。它总是默认为 - 无 - 。请注意,我的模型是IList <>MVC4 DropDownListFor未选择传递值

此外,我应该将这些值编码到我的模型或数据库中吗?如果添加了另一个值,我不想重新编译我的代码,但我宁愿客户端每次打开下拉列表时都不必进行数据库调用。

回答

1

您需要设置所选项目:

new SelectListItem{ Text = "Boat", Value = "03", Selected = @Model.SomeValue.Equals("03") } 

它可以在控制器中创建列表的收集,并设置为上得到数据传递给视图的视图模型的属性是个好主意。

+0

这样做!哇,我正试图解决这个问题。非常感谢你! – user3566390

+0

后续问题,如果你仍然在附近。我添加了Selected piece,它解决了我最初的问题,但是现在,如果传递null,我会得到一个空引用异常,而不是默认为--none--。任何想法如何处理空值? – user3566390

+0

你可以发布你添加的代码吗? –