大家好,欢迎来到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—”,得到的值为空值
这里不行就只有找其他方法了,那就只有在数据上做文章了,百度了下还真找到了一个,使用SelectList
类;
SelectList
也有很多实例化参数,我这里数据对象里只有一个值,就只用到两个参数(一个数据集合,一个默认选中项值);
如果数据集合里的对象不是单个值,就要使用四个参数的(一个数据集合,一个取值字段名称,一个显示字段名称,一个默认选中项的值)
后台代码:
前台代码:
@Html.DropDownList("ge_type", (SelectList)ViewBag.typeList,new { @class = "layui-select", lay_verify = "required" })
到这里也就成功了!!!
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/27299.html