zoukankan      html  css  js  c++  java
  • ASP.NET MVC 下拉框的传值的两种方式

    以前使用WebForm变成时,下拉框传值只需直接在后台绑定代码就可以了。现在我们来看看在MVC中DropDownList是如果和接受从Controller传过来的值的。

    第一种:使用DropDownList

    控制器代码:

     1     public ActionResult Index()  
     2     {  
     3       
     4         //1.1查询YzSeriesEntity的数据  
     5         List<Model.YzSeriesEntity> seriesList = seriesBLL.LoadEnities().ToList();  
     6         //1.2将YzSeriesEntity的数据封装到 SelectList中,制定要生成下拉框选项的value和text属性  
     7         SelectList selList1 = new SelectList(seriesList, "SerialName", "SerialName");  
     8       
     9         //2.1查询YzDivisionEntity的数据  
    10         List<Model.YzDivisionEntity> divisionList = divisionBLL.LoadEnities().ToList();  
    11         //2.2讲YzDivisionEntity的数据封装到 SelectList中,制定要生成下拉框选项的value和text属性  
    12         SelectList selList2 = new SelectList(divisionList, "DivisionName", "DivisionName");  
    13       
    14         //3.调用Selectlist的As方法,自动生成SelectListItem集合,并存入ViewBag中  
    15         ViewBag.selList1 = selList1.AsEnumerable();  
    16         ViewBag.selList2 = selList2.AsEnumerable();  
    17          
    18         return View();  
    19     }  

    视图代码:

     1     <!-------------- 添加对话框-------------->  
     2     <div id="addDiv">  
     3         @using (Ajax.BeginForm("Add", new AjaxOptions() { OnSuccess = "afterAdd" }))  
     4         {  
     5             <table>  
     6                 <tr>  
     7                     <td>编号:</td>  
     8                     <td>  
     9                         @Html.TextBox("StaffID")  
    10                     </td>  
    11                 </tr>  
    12                 <tr>  
    13                     <td>姓名:</td>  
    14                     <td>@Html.TextBox("StaffName")</td>  
    15                 </tr>  
    16                 <tr>  
    17                     <td>性别:</td>  
    18                     <td>  
    19                         <input type="radio" id="GenderM" name="Sex" value="" />20                         <input type="radio" id="GenderF" name="Sex" value="" checked />21                     </td>  
    22                 </tr>  
    23                 <tr>  
    24                     <td>所在系列:</td>  
    25                     <td>  
    26                         @Html.DropDownList("SerialName", ViewBag.selList1 as IEnumerable<SelectListItem>)  
    27                     </td>  
    28                 </tr>  
    29                 <tr>  
    30                     <td>科室或年级组:</td>  
    31                     <td>  
    32                         @Html.DropDownList("DivisionName", ViewBag.selList2 as IEnumerable<SelectListItem>)  
    33                     </td>  
    34                 </tr>  
    35                 <tr>  
    36                     <td>任课学科:</td>  
    37                     <td>  
    38                         @Html.TextBox("Subjects")  
    39                     </td>  
    40                 </tr>  
    41                 <tr>  
    42                     <td>聘任日期:</td>  
    43                     <td>  
    44                         @Html.TextBox("EngageDate")  
    45                     </td>  
    46                 </tr>  
    47                 <tr>  
    48                     <td>参加工作日期:</td>  
    49                     <td>  
    50                         @Html.TextBox("WorkDate")  
    51                     </td>  
    52                 </tr>  
    53                 <tr>  
    54                     <td>职称:</td>  
    55                     <td>  
    56                         @Html.TextBox("jobQualification")  
    57                     </td>  
    58                 </tr>  
    59                 <tr>  
    60                     <td>身份证号:</td>  
    61                     <td>  
    62                         @Html.TextBox("IdentityCard")  
    63                     </td>  
    64                 </tr>  
    65       
    66             </table>  
    67         }  
    68       
    69     </div>  

    效果显示:

    第二种:使用<select></select>

    视图代码:

    1     <!--选择权重-->  
    2     <div>  
    3         <span>@Html.Label("请选择权重:")</span>  
    4         <span>  
    5             <select id="cc" class="easyui-combobox" name="dept"  
    6                    data-options="valueField:'ID',textField:'Weight',url:'/SettingEvaluation/ListOption'" />  
    7         </span>  
    8     </div>  

    控制器代码:

     1     //下拉框对应的列表  
     2     public ActionResult ListOption()  
     3     {  
     4         //2.1.查询出weight实体,并将其转成DTO类型  
     5         List<Model.DTO.YzWeightEntityDTO> weightList =  
     6             weightBLL.LoadEnities().ToList().Select(s => s.ToDto()).ToList();  
     7         //2.2返回json  
     8         return Json(weightList, JsonRequestBehavior.AllowGet);  
     9       
    10     }   

    效果显示:

    总结:

        两种传值方式的比较:

        第一种是控制器通过ViewBag传值,前台通过@Html.DropDownList接收;第二种是通过Json传值,前台通过url绑定 valueField和textField的值来获取数据。两者没有什么太大的不同,但是由于传值使用<select></select>接收的,使用的是HTML标签,所以还可以用来绑定其他的js事件,所以如果有功能需要的话,后者要比前者灵活些。

  • 相关阅读:
    命名规范
    操作文件和目录
    使用本地shadow socks代理
    发送邮件
    sql参数化
    定义常量
    获取嵌套字典值的方法
    通过字符串调用函数
    用字典优化过长的if 语句
    操作文件和目录
  • 原文地址:https://www.cnblogs.com/fjptwwf/p/5378202.html
Copyright © 2011-2022 走看看