C# MVC @Html.DropDownList的使用

本文介绍了在C# MVC框架下,如何使用@Html.DropDownList和DropDownListFor辅助方法来创建下拉列表。当面对多张数据表时,由于只能返回一个Model,因此需要灵活运用这两个方法。DropDownListFor更方便,它接受表达式、数据源和属性设置作为参数。当DropDownList无法设置默认值时,可以通过在数据对象上做文章,或者使用SelectList类来实现,默认值可以通过SelectListItem实例设置。

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

@Html.DropDownList的使用

在一般情况下使用的是DropDownListFor,这个可以直接跟后台返回视图的model绑定(m=>m.需绑定的字段),并且下拉框会自动选中与该字段匹配的值;
这次遇到一个问题就是,表单需要用到的是两张数据表,后台却只能返回一个model,我就只返回了一个数据字段多的表,另一个表使用的ViewBag返回到视图,这里就不能使用DropDownListFor,只能使用DropDownList了。

使用DropDownListFor简单多了,使用三个参数重载的,第一个参数表达式列出需要使用的字段。第二参数下拉框的数据来源,第三个参数就是下拉框的基本属性设置了;

后台把数据查出来返回List<SelectListItem>SelectListItem应该是MVC自带的实体对象,里面只有三个参数,Text下拉框显示值,Value下拉框取值,Selected下拉框是否默认选择该值
后台代码:

ViewBag.typeList = Context.tb_base_public_type.Where(a => a.name.Equals("企业类型"))
                .Select(a => new SelectListItem {Text = a.value, Value = a.value}).ToList();

前台代码:

 @Html.DropDownListFor(m => m.ge_type, (List<SelectListItem>)ViewBag.typeList , new { @class = "layui-select", lay_verify = "required" })

在使用的时候发现,DropDownList没有设置默认值的重载,看到第三个参数是默认显示文本,但不是默认值,例如:“—请选择XXX—”,得到的值为空值
DropDownList的参数

这里不行就只有找其他方法了,那就只有在数据上做文章了,百度了下还真找到了一个,使用SelectList类;
SelectList也有很多实例化参数,我这里数据对象里只有一个值,就只用到两个参数(一个数据集合,一个默认选中项值);
如果数据集合里的对象不是单个值,就要使用四个参数的(一个数据集合,一个取值字段名称,一个显示字段名称,一个默认选中项的值)
后台代码:
后台使用SelectList
前台代码:

@Html.DropDownList("ge_type", (SelectList)ViewBag.typeList,new { @class = "layui-select", lay_verify = "required" })

到这里也就成功了!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丶Hoo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值