这篇文章主要介绍了详解ASP.NET MVC 下拉框的传值的两种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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

第一种:使用DropDownList

控制器代码:

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

视图代码:

    <!-------------- 添加对话框-------------->
    <div id="addDiv">
      @using (Ajax.BeginForm("Add", new AjaxOptions() { OnSuccess = "afterAdd" }))
      {
        <table>
          <tr>
            <td>编号:</td>
            <td>
              @Html.TextBox("StaffID")
            </td>
          </tr>
          <tr>
            <td>姓名:</td>
            <td>@Html.TextBox("StaffName")</td>
          </tr>
          <tr>
            <td>性别:</td>
            <td>
              <input type="radio" id="GenderM" name="Sex" value="男" />男
              <input type="radio" id="GenderF" name="Sex" value="女" checked />女
            </td>
          </tr>
          <tr>
            <td>所在系列:</td>
            <td>
              @Html.DropDownList("SerialName", ViewBag.selList1 as IEnumerable<SelectListItem>)
            </td>
          </tr>
          <tr>
            <td>科室或年级组:</td>
            <td>
              @Html.DropDownList("DivisionName", ViewBag.selList2 as IEnumerable<SelectListItem>)
            </td>
          </tr>
          <tr>
            <td>任课学科:</td>
            <td>
              @Html.TextBox("Subjects")
            </td>
          </tr>
          <tr>
            <td>聘任日期:</td>
            <td>
              @Html.TextBox("EngageDate")
            </td>
          </tr>
          <tr>
            <td>参加工作日期:</td>
            <td>
              @Html.TextBox("WorkDate")
            </td>
          </tr>
          <tr>
            <td>职称:</td>
            <td>
              @Html.TextBox("jobQualification")
            </td>
          </tr>
          <tr>
            <td>身&份&证号:</td>
            <td>
              @Html.TextBox("IdentityCard")
            </td>
          </tr>
 
        </table>
      }
 
    </div>

效果显示:

 

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

视图代码:

    <!--选择权重-->
    <div>
      <span>@Html.Label("请选择权重:")</span>
      <span>
        <select id="cc" name="dept"
            />
      </span>
    </div>

控制器代码: 

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

效果显示:

总结:

两种传值方式的比较:

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持爱安网。

最新资讯
特斯拉频繁裁员让员工没有安全感:像斧子悬在头上

特斯拉频繁裁员让员工

据国外媒体报道,多名特斯拉员工表示,频繁的裁员让他们感
小红书回应部分用户App访问故障:技术原因 已恢复

小红书回应部分用户Ap

7月6日晚间,部分用户发现小红书移动端App苹果和安卓系
蔚来涨幅扩大至26.65% 二季度交付10331辆汽车超预期

蔚来涨幅扩大至26.65%

蔚来汽车二季度交付了10331辆汽车,超出了此前预期上限
亚马逊和英伟达也卷入“反性骚扰运动” 150多人涉案

亚马逊和英伟达也卷入

越来越多的美国大品牌卷入到了正席卷美国游戏直播界的
蔚来汽车涨逾20% 股价突破11美元关口

蔚来汽车涨逾20% 股价

蔚来汽车涨逾20%,股价突破11美元关口,创2019年3月上旬以
美的:格力所提及中移动项目发票及技术存疑均不属实

美的:格力所提及中移动

美的官方微博发表声明表示:格力所提及在中国移动招标项
最新文章
用.NET做动态域名解析的方法示例

用.NET做动态域名解析

这篇文章主要介绍了用.NET做动态域名解析的方法示例,文
.NET Core3.1编写混合C++程序

.NET Core3.1编写混合

这篇文章主要介绍了.NET Core3.1编写混合C++程序,文中
ASP.NET Core 3.0使用gRPC的具体方法

ASP.NET Core 3.0使用

这篇文章主要介绍了ASP.NET Core 3.0使用gRPC,文中通过
ASP.NET Core 3.0 gRPC拦截器的使用

ASP.NET Core 3.0 gRP

这篇文章主要介绍了ASP.NET Core 3.0 gRPC拦截器的使
ASP.NET Core 3框架揭秘之 异步线程无法使用IServiceProvider问题

ASP.NET Core 3框架揭

这篇文章主要介绍了ASP.NET Core 3框架揭秘之异步线程
3分钟快速学会在ASP.NET Core MVC中如何使用Cookie

3分钟快速学会在ASP.N

这篇文章主要给大家介绍了关于如何通过3分钟快速学会