C#.NET 在 MVC 中动态绑定下拉菜单的方法
2009-06-26 18:56
429 查看
在 MVC 中动态绑定下拉菜单的方法
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 };
ViewData["select1"] = new SelectList(select1, "Value", "Text", "此处为默认项的值");
return View();
}
}
在 View 中使用
<%= 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
for (int i = 0; i < texts.Length; i++)
{
select1.Add(new SelectListItem
{
Text = texts[i],
Value = values[i]
});
};
ViewData["select1"] = new SelectList(select1, "Value", "Text", "此处为默认项的值");
return View();
}
}
在 View 中使用
<%= 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();
}
}
在 View 中使用
// 首先将 ViewData 中的数据转化为 SelectList
<% SelectList categories = ViewData["Categories"] as SelectList; %>
// 然后才能输出
<%= Html.DropDownList("Category", categories) %>
在这里需要注意,就是第3种与前2种在 View 中使用方法稍有不同,当然也可以将前2种方法改为第3种方法,或者将第3种方法改为前2种方法。
注:第一次发表学习文章,心情有点激动;我所发的基本上是才接触时,自己遇到的相关问题,发表出来也是增强自己的记忆,也希望与大家交流;大家如果有更多其它的方法,请告诉我。另外如有不足之处还请指出,谢谢。
相关文章推荐
- 【网摘】C#.NET 在 MVC 中动态绑定下拉菜单的方法
- C#.NET 在 MVC 中动态绑定下拉菜单的方法
- C#.NET 在 MVC 中动态绑定下拉菜单的方法
- ASP.NET MVC 5 (二)动态输出、辅助器方法、模型绑定与添加验证
- ASP.NET MVC 2.0 in Vs2010 :使用C# 4.0中使用动态类型来传递ViewData
- C# Asp.net MVC 分页时传参场景 动态生成QueryString
- 在ASP.NET MVC中使用Knockout实践02,组合View Model成员、Select绑定、通过构造器创建View Model,扩展View Model方法
- c#扩展方法奇思妙用 ASP.NET MVC 篇:巧用扩展方法优先级,美化所有页面 TextBoxFor 文本框
- C#.Net Mvc运营监控,计算方法/接口/action/页面执行时间
- c# 扩展方法奇思妙用 ASP.NET MVC 篇:巧用扩展方法优先级,美化所有页面 TextBoxFor 文本框
- (.net)C#动态调用Web服务的几种方法
- ASP.NET MVC 中将数据从View传递到控制器中的三种方法(表单数据绑定)
- 每日总结(二)C#判断输入内容为数字、Sharepoint回收应用程序池错误、Asp.Net 会发或回调参数无效、DropDownList动态绑定且设置默认选择项
- asp.net mvc 动态编译生成Controller的方法
- Asp.Net--DropDownList与DataTable数据绑定的方法(C#)[学习笔记]
- ASP.NET MVC 中将数据从View传递到控制器中的三种方法(表单数据绑定)
- ASP.NET MVC 2.0 in Vs2010 :使用C# 4.0中使用动态类型来传递ViewData
- C#.Net前端数据post传递方法(mvc)
- 每日总结(二)C#判断输入内容为数字、Sharepoint回收应用程序池错误、Asp.Net 会发或回调参数无效、DropDownList动态绑定且设置默认选择项
- (asp.net c#)DropDownList绑定后显示对应的项的两种方法