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

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

@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" })

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值