详解ASP.NET MVC 下拉框的传值的两种方式
以前使用WebForm变成时,下拉框传值只需直接在后台绑定代码就可以了。现在我们来看看在MVC中DropDownList是如果和接受从Controller传过来的值的。
第一种:使用DropDownList
控制器代码:
publicActionResultIndex() { //1.1查询YzSeriesEntity的数据 ListseriesList=seriesBLL.LoadEnities().ToList(); //1.2将YzSeriesEntity的数据封装到SelectList中,制定要生成下拉框选项的value和text属性 SelectListselList1=newSelectList(seriesList,"SerialName","SerialName"); //2.1查询YzDivisionEntity的数据 List divisionList=divisionBLL.LoadEnities().ToList(); //2.2讲YzDivisionEntity的数据封装到SelectList中,制定要生成下拉框选项的value和text属性 SelectListselList2=newSelectList(divisionList,"DivisionName","DivisionName"); //3.调用Selectlist的As方法,自动生成SelectListItem集合,并存入ViewBag中 ViewBag.selList1=selList1.AsEnumerable(); ViewBag.selList2=selList2.AsEnumerable(); returnView(); }
视图代码:
@using(Ajax.BeginForm("Add",newAjaxOptions(){OnSuccess="afterAdd"})) { }
编号: @Html.TextBox("StaffID") 姓名: @Html.TextBox("StaffName") 性别: 男 女 所在系列: @Html.DropDownList("SerialName",ViewBag.selList1asIEnumerable ) 科室或年级组: @Html.DropDownList("DivisionName",ViewBag.selList2asIEnumerable ) 任课学科: @Html.TextBox("Subjects") 聘任日期: @Html.TextBox("EngageDate") 参加工作日期: @Html.TextBox("WorkDate") 职称: @Html.TextBox("jobQualification") 身份证号: @Html.TextBox("IdentityCard")
效果显示:
第二种:使用
视图代码:
@Html.Label("请选择权重:")
控制器代码:
//下拉框对应的列表 publicActionResultListOption() { //2.1.查询出weight实体,并将其转成DTO类型 ListweightList= weightBLL.LoadEnities().ToList().Select(s=>s.ToDto()).ToList(); //2.2返回json returnJson(weightList,JsonRequestBehavior.AllowGet); }
效果显示:
总结:
两种传值方式的比较:
第一种是控制器通过ViewBag传值,前台通过@Html.DropDownList接收;第二种是通过Json传值,前台通过url绑定valueField和textField的值来获取数据。两者没有什么太大的不同,但是由于传值使用接收的,使用的是HTML标签,所以还可以用来绑定其他的js事件,所以如果有功能需要的话,后者要比前者灵活些。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。