最近在码东西时,遇到的问题,一个简单的下拉框功能,用了下面这个方法
@Html.DropDownListFor()
其中需要一个IEnumerable<SelectListItem>类作为参数,传递数据,这里博主使用了ViewData,具体代码如下
<div class="col-sm-8">
@Html.DropDownListFor(t => t.Container, ViewData["Container"] as IEnumerable<SelectListItem>, new { @class = "form-control", @style = "font-size:13px" })
@Html.ValidationMessage("Container", new { @class = "text-danger pull-right" })
</div>
设置ViewData数据如下,controller表示当前控制器,selectListItems是一个SelectListItem的集合
List<SelectListItem> selectListItems = new List<SelectListItem>();
......
controller.ViewData["Container"] = selectListItems;
其中,selectListItems的数据如下,第二项“容器二”维选中项

但是在视图中,并没有选中的项,如图所示

后来觉得可能是ViewData名与前面的表达式名一样,导致冲突
尝试了修改ViewData的key值
controller.ViewData["ContainerDDL"] = selectListItems;
------------------
@Html.DropDownListFor(t => t.Container, ViewData["ContainerDDL"] as IEnumerable<SelectListItem>, new { @class = "form-control", @style = "font-size:13px" })
问题竟然解决了。。。。。

但是,目前还不清楚为什么会这样。 =_= !

本文探讨在ASP.NET MVC中使用@Html.DropDownListFor()方法创建下拉框时,遇到的默认选中项不生效的问题。通过更改ViewData的Key值,成功实现了下拉框的默认选项设置。
96

被折叠的 条评论
为什么被折叠?



