最近在码东西时,遇到的问题,一个简单的下拉框功能,用了下面这个方法
@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" })
问题竟然解决了。。。。。
但是,目前还不清楚为什么会这样。 =_= !