我们先在控制器中准备好一个SelectList类型,然后通过ViewBag.List传入视图中。SelectList类型是ASP.NET MVC专门为列表有关的HTML辅助方法提供选项的,例如,Html.DropDownList()、Html.ListBox()都可以使用。

 public ActionResult HelperDropDownList()
{
List<SelectListItem> listItem = new List<SelectListItem>{
new SelectListItem{Text="是",Value=""},
new SelectListItem{Text="否",Value=""}
};
ViewBag.List = new SelectList(listItem,"Value","Text","");
return View();
}

然后在视图中就可以创建下拉列表了。

@Html.DropDownList("List", ViewBag.List as SelectList, "请选择")

渲染的HTML是这样的:

 <select name="List" id="List">
<option value="">请选择</option>
<option value="1">是</option>
<option value="0">否</option>
</select>

还有,若是后台数据使用ViewData传到视图时,可以这样写:

 //后台用ViewData传值到页面,或者用ViewBag
public ActionResult HelperDropDownList()
{
List<SelectListItem> listItem = new List<SelectListItem>{
new SelectListItem{Text="是",Value="1"},
new SelectListItem{Text="否",Value="0",Selected=true}
};
//ViewBag.List = new SelectList(listItem, "Value", "Text", "");
ViewData["List"] = new SelectList(listItem, "Value", "Text", "");
return View();
}
 @using (Html.BeginForm("DropDownValue","Home"))
{
//只需将第一个参数写成对应的ViewData索引即可,或者对应的ViewBag索引
@Html.DropDownList("List","请选择")
<div>
<input type="submit" value="提交" />
</div>
}

--------------------------------------------------------------------------------------------------------------

那么,在视图页面的下拉列表被选择的值怎么传到Controlloer的方法进行处理呢?可以这样:

 @using (Html.BeginForm("DropDownValue","Home"))
{
@Html.DropDownList("List", ViewBag.List as SelectList, "请选择")
<div>
<input type="submit" value="提交" />
</div> }

将下拉列表置于表单当中,当表单提交时,被选中的值就被提交到控制器方法。

 public ActionResult DropDownValue(string List)
{
ViewBag.Result = List;
return View();
}

注意接受值的方法的参数名称与html标签的id保持一致性。

MVC视图中Html.DropDownList()辅助方法的使用的更多相关文章

  1. mvc的视图中显示DataTable的方法

    mvc的视图中显示DataTable的方法: 不断的循环画出table @{ ViewBag.Title = "ShowDataTable"; } @using System.Da ...

  2. Asp.net MVC4高级编程学习笔记-模型学习第五课MVC表单和HTML辅助方法20171101

    MVC表单和HTML辅助方法 一.表单的使用. 表单中的action与method特性.Action表示表单要提交往那里,因此这里就有一个URL.这个URL可以是相对或绝对地址.表单默认的method ...

  3. MVC视图中的@Html.xxx(...)

    ASP.NET MVC视图中的@Html.xxx(...)   问题 在视图页中@Html.xxx(...)是什么?如何被执行? 如下图所示: 解疑 视图页中@Html.xxx(...)涉及的内容有: ...

  4. 在mvc视图中实现rdlc报表展示(补充)

    上篇: 在mvc视图中实现rdlc报表展示 在上一遍中,由于不知道如何在aspx.cs后台中实例化abp的IxxxAppService.cs的接口,我采取的方式是在视图页中把查询出的数据存储到aspx ...

  5. 在mvc视图中实现rdlc报表展示

    需求:在view视图页面中嵌入rdlc报表,rdlc的xml为动态传入的xml字符串.本项目是基于abp框架 可能出现问题: 1.rdlc报表是由asp.net的服务器控件ReportViewer来支 ...

  6. 在Repeater中使用DropDownList的方法

    在Repeater中使用DropDownList的方法 以下代码并不完整,只记录了关键的方法 aspx代码中 假设这是一个用户管理的系统的模型,有一个下拉菜单来操作用户状态 <asp:Repea ...

  7. 【HANA系列】SAP HANA计算视图中的RANK使用方法

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA计算视图中的RA ...

  8. MVC强类型视图、强类型HTML辅助方法

    强类型视图: <table> <tr> <td>ID:</td><td><%: Model.Id %></td> & ...

  9. C#,MVC视图中把枚举转成DropdownList

    1.拓展EnumHelper public static class EnumHelper { // Get the value of the description attribute if the ...

随机推荐

  1. VirtualBox扩展Ubuntu磁盘空间

    有时候我们在使用virtualBox虚拟机时,创建虚拟机时并没有考虑到所占用硬盘大小,后来可能磁盘空间不够用了. 以下方法可以帮你扩展虚拟机的存储空间(以下Ubuntu为例). 1. 在宿主机器进入V ...

  2. [置顶] android 图片库的封装

    大家在做安卓应用的时候  经常要从网络中获取图片 都是通过URL去获取 可是如果本地有图片数据 从本地获取数据不更加快一些  自己在工作中遇到这个问题 所以采用了一个URL和本地图片的一个映射关系  ...

  3. js点击弹出div层

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. Servlet跳转

    方便自己查询,嫌低级的勿喷.... 在Servlet中跳转有两种: 1.客户端跳转 在Servlet中要进行客户端跳转(地址栏的地址信息将发生改变),直接使用HttpServletResponse接口 ...

  5. HDU--2040

    亲和数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submis ...

  6. getopt 分析命令行参数 -n -t 1

    在Linux中,我们常常用到 ls -l 等等之类带有选项项的命令,下面,让我们用C++来实现该类似的命令. 在实现之前,首先,我们来介绍一下一个重要函数:getopt() 表头文件 #include ...

  7. (转)DedeCms Runphp 标签中调用其他变量的方法

    DedeCms Runphp 标签中调用其他变量的方法 我们都知道,在DedeCMS中是可以使用PHP的,常见的方法就是if else了,例如模板制作中,我们需要对来源和作者进行判断,如果为空,则提示 ...

  8. Android开发笔记:安卓程序截屏方法

    1,基于Android SDK的截屏方法 (1)主要就是利用SDK提供的View.getDrawingCache()方法.网上已经有很多的实例了.首先创建一个android project,然后进行L ...

  9. 一、初识T4引擎

    对于代码生成器我们并不陌生,在日常编码中这也是用的比较多的工具之一.一般代码生成器主要功能是生成公共或基础代码来减少编码人员的工作量,而一款优秀的代码生成器除了生产代码以外,同时兼具生成项目架构和基础 ...

  10. propertychange input change

    IE678 支持propertychange事件,可以监听所有属性(包括自定义属性)的改变事件,包括手动修改输入框文本以及js修改输入框文本. propertychange事件有个特点就是不支持冒泡, ...