1. 已知下拉菜单列表项:
在 Controller 控制器类中输入已下代码

 1 public class DemoController : Controller
 2 {
 3     public ActionResult BindDropDownList()
 4     {
 5         List<SelectListItem> select1 = new List<SelectListItem>
 6         {
 7             new SelectListItem { Text = "内容", Value = "值" },
 8             new SelectListItem 
 9         };
10         
11         ViewData["select1"] = new SelectList(select1, "Value", "Text", "此处为默认项的值");
12         
13         return View();
14     }
15 }

 
在 View 中使用


1 <%= Html.DropDownList("select1") %>

 
这种方法简单明了,也比较方便,如果不用从数据库中读取数据的话,可以采用这种方法。
 


2. 从数据库或者数组中循环读取下拉列表项 

此处省略数据库连接代码,从数据库读出的数据与字符串数组中存储的数据类似,以下就以数组为例。 
在 Controller 中控制器类中输入已下代码


 1 public class DemoController : Controller
 2 {
 3     public ActionResult BindDropDownList()
 4     {
 5         string[] texts = new string[] { "一", "二", "三", n };
 6         string[] values = new string[] { "1", "2", "3", n };
 7         
 8         List<SelectListItem> select1 = new List<SelectListItem>();
 9         
10         for (int i = 0; i < texts.Length; i++)
11         {
12             select1.Add(new SelectListItem
13             {
14                 Text = texts[i],
15                 Value = values[i]
16             });
17         };
18         
19         ViewData["select1"] = new SelectList(select1, "Value", "Text", "此处为默认项的值");
20         
21         return View();
22     }
23 }

 
在 View 中使用 


1 <%= Html.DropDownList("select1") %>

 
其实这种方法看起来跟第1种比较类似,只是读取数据的时候,采用了一个循环的语句。 
 


3.  从数据库中读取某表的所有下拉菜单列表项

此处假设已存在 Category 类,可以通过 Category.GetList() 方法获取该表的所有分类,该表包含 ID 和 Name 两个数据列。
在 Controller 中控制器类中输入已下代码


 1 public class DemoController : Controller
 2 {
 3     public ActionResult BindDropDownList()
 4     {
 5         List<CategoryEntiry> categories = Category.GetAll();
 6         
 7         ViewData["Categories"] = new SelectList(categories, "ID", "Name");
 8         
 9         return View();
10     }
11 }

 
在 View 中使用


1 // 首先将 ViewData 中的数据转化为 SelectList
2 <% SelectList categories = ViewData["Categories"] as SelectList; %>

4 // 然后才能输出
5 <%= Html.DropDownList("Category", categories) %>

 
在这里需要注意,就是第3种与前2种在 View 中使用方法稍有不同,当然也可以将前2种方法改为第3种方法,或者将第3种方法改为前2种方法。

【网摘】C#.NET 在 MVC 中动态绑定下拉菜单的方法的更多相关文章

  1. Android ActionBar中的下拉菜单

    在ActionBar中添加下拉菜单,主要有一下几个关键步骤: 1. 生成一个SpinnerAdapter,设置ActionBar的下拉菜单的菜单项 2. 实现ActionBar.OnNavigatio ...

  2. Delphi访问网页中的下拉菜单

    Delphi通过TWebBrowser浏览网页,然后访问该网页中的下拉菜单: uses MsHtml;procedure TForm1.Button1Click(Sender: TObject);va ...

  3. yii框架中的下拉菜单和单选框

    yii中的下拉菜单: 第一种: <?= $form->field($model, 'parent_id')->dropDownList(ArrayHelper::map($data, ...

  4. 初学者--bootstrap(六)组件中的下拉菜单----在路上(10)

    组件---下拉菜单 用于显示链接列表的可切换.有上下文的菜单.下拉菜单的 JavaScript 插件让它具有了交互性. 将下拉菜单触发器和下拉菜单都包裹在 .dropdown 里,或者另一个声明了 p ...

  5. bootstrap日期控件在火狐下的模态框中选择时间下拉菜单无效的解决办法

    今天收到程序组提交的一个兼容BUG,在火狐中使用模态框加载日期控件时选择时间下拉菜单没有效果(不能点击),而在谷歌中却是好的, 排错思路:1,在当前页面主层放置一个时间控件,测试通过 2,在ajax加 ...

  6. bootstrap中的下拉菜单

    下拉菜单必要的代码: <div  class="container"> <div  class="dropdown"> <butt ...

  7. bootstrap中selectpicker下拉框使用方法实例

    最近一直在用bootstrap 的一些东西,写几篇博客记录下.... bootstrap selectpicker是bootstrap里比较简单的一个下拉框的组件,先看效果如下: 附上官网api链接, ...

  8. Bootstrap页面布局16 - BS导航菜单和其响应式布局以及导航中的下拉菜单

    代码: <div class='container-fluid'> <h2 class='page-header'>导航</h2> <!-- .navrbar ...

  9. PHOTOSHOP中3D下拉菜单为灰色如何设置

    方法/步骤   安装好PS后,在测试3D功能时突然发不能用.如图,怎么办呢?   按“CTRL+K”打开,或者在编辑-首选项-性能-勾选“启用OpenGL绘图(D)”   在选项对话框中勾选“启用Op ...

随机推荐

  1. Docker 发布 Abp net core web 服务

    Docker 发布 Abp net core web 服务 准备工作:Abp 项目,这个是模板下载地址 https://aspnetboilerplate.com/Templates (本例使用的是S ...

  2. MIP 组件库升级公告

    背景 为了方便广大开发者们更好地使用组件,现对 MIP 组件库统一进行升级,升级后将分为通用组件和自定义组件两类,方便开发. 通用组件,即考虑了组件通用性方便所有开发者参考使用的组件,将存放于 mip ...

  3. spring mvc+redis实现微信小程序登录

    本文将详细的介绍微信小程序的登录流程以及在ssm框架下如何实现小程序用户登录 登录流程概要 主要的登录流程可以参考官方提供的一张流程图: 1.微信前台页面: 在微信版本更新之后,提高了安全机制,我们需 ...

  4. "元素隐式具有 “any” 类型,因为类型“Shared”没有索引签名"问题解决思路

    最近在构建一个typescript项目时如下代码在项目框架里vscode报错元素隐式具有 "any" 类型,因为类型“Shared”没有索引签名;很有意思的是当我们单独的把这段代码 ...

  5. RMAN优缺点及RMAN备份及恢复步骤

    RMAN优缺点及RMAN备份及恢复步骤--以下部分来自网络转摘,仅供参考和OS命令备份方式相比,使用RMAN的优点1 备份执行期间不需要人工干预,因此减少了误操作的机会:2 可以有效的将备份和恢复结合 ...

  6. CI持续集成系列之(九)代码发布脚本模板书写

    前言 前面我们介绍了Jenkins来发布项目通过nginx来展示流程,那里只是提供了一个简单的测试脚本,接下来呢介绍一下一个比较完善的发布脚本,该脚本可实现从gitlab服务器获取代码,打包,部署到W ...

  7. 巧妙地使用typora编辑有道云笔记

    设置方法 找到有道云笔记本地保存路径: 找到有道云笔记的保存的路径:启动有道云 - 设置 - 有道云笔记(本地文件) - 打开文件夹 使用typora打开有道云笔记目录: typora 菜单栏 - O ...

  8. 快速构建H5单页面切换应用

    在Web App和Hybrid App横行的时代,为了拥有更好的用户体验,单页面应用顺势而生,单页面应用简称`SPA`,即Single Page Application,就是只有一个HTML页面的应用 ...

  9. 使用 connect http proxy 绕过 ssh 防火墙限制

    1.安装 connect brew install connect 2.配置 ~/.ssh/config Host * ProxyCommand connect -H your.proxy.serve ...

  10. Implement heap using Java

    public class HeapImpl { private int CAPACITY = 10; private int size = 0; private int[] data; public ...