.NET MVC中使用ViewData做下拉框(DropDownListFor)无法选择默认项数据的问题

最近在码东西时,遇到的问题,一个简单的下拉框功能,用了下面这个方法

@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名与前面的表达式名一样,导致冲突
在这里插入图片描述尝试了修改ViewDatakey

controller.ViewData["ContainerDDL"] = selectListItems;  
------------------
@Html.DropDownListFor(t => t.Container, ViewData["ContainerDDL"] as IEnumerable<SelectListItem>, new { @class = "form-control", @style = "font-size:13px" })

问题竟然解决了。。。。。
在这里插入图片描述
但是,目前还不清楚为什么会这样。 =_= !

发布了62 篇原创文章 · 获赞 68 · 访问量 16万+

猜你喜欢

转载自blog.csdn.net/ZUFE_ZXh/article/details/102476594