C# MVC @Html.DropDownList的使用

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

大家好,欢迎来到IT知识分享网。

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

到这里也就成功了!!!

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/27299.html

(0)
上一篇 2023-09-13 18:33
下一篇 2023-09-18 13:15

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信