asp.net MVC4 @Html.DropDownList的使用
在MVC4中使用Razor语法,一使用就爱上他了,
一般项目都是有一些增删改查功能,表单下拉框是经常使用的,除了用原始的<select>外,还可以用@Html.DropDownList和@Html.DropDownListFor,这里提供一点方法;
在控制器中定义两种可生成下拉列表项方法:
ViewBag.list = new SelectList(list.Select(x => x.Address).Distinct());
ViewBag.down = new SelectList(list.Select(x => new { text = x.Address, value = x.Id }), "value", "text");
ViewData["downlist"]= list.Select(x=>new SelectListItem() { Text=x.Address,Value=x.Id.ToString()});
在网页中可以按如下写法
@Html.DropDownList("down",@Model.Address)
@Html.DropDownListFor(x=>x.Id,ViewBag.down as IEnumerable<SelectListItem>)
@Html.DropDownListFor(x=>x.Id, ViewData["downlist"] as IEnumerable<SelectListItem>)
如果我们想在DropDownList中的最顶端添加一个默认值的话,请模仿下面的写法:添加第三个参数
@Html.DropDownListFor(x=>x.Id,ViewBag.down as IEnumerable<SelectListItem>, "---Select---") 如果想在DropDownListFor中添加自己的ID属性,可以这样
@Html.DropDownListFor(x=>x.Id,ViewBag.down as IEnumerable<SelectListItem>,new{id="userid"})
如果是两级下拉级联菜单可以使用jquery的ajax:
$("#parentDep").change(function () {
        var $this = $(this);
        var id = $this.val();
        $this.next("select").remove();
        $("#depid").val(id);
        if (id.length > 0) {
            $.getJSON("/users/getSubDep/" + id, "", function (data) {
                if (data.length > 0) {
                    var sel = $('<select id="subDep" name="subDep" class="form-control" style="width: 200px; display: inline-block;"><option value=""></option></select>');
                    for (var i = 0; i < data.length; i++) {
                        sel.append('<option value="' + data[i].id + '">' + data[i].text + '</option>');
                    }
                    sel.change(function () {
                        $("#depid").val(sel.val());
                    });
                    $this.after(sel);
                }
            });
        }
    });
public ActionResult getSubDep(int id = 0)
{
if (!Request.IsAjaxRequest())
{
return Content("非法操作");
}
var res = db.departments.Where(x => x.depparentid == id);
if (res == null)
{
return Content("");
}
else
{
return Json(res.Select(x => new { id = x.id, text = x.depname }), JsonRequestBehavior.AllowGet);
}
}
asp.net MVC4 @Html.DropDownList的使用的更多相关文章
- ASP.NET MVC4+EasyUI+EntityFrameWork5权限管理系统——菜单模块的实现(二)
		
ASP.NET MVC4+EasyUI+EntityFrameWork5权限管理系统——数据库的设计(一) 菜单和模块是在同一个表中,采用的是树形结构,模块菜单表结构如下代码: USE [Permis ...
 - 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(44)-工作流设计-设计表单
		
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(44)-工作流设计-设计表单 系列目录 设计表单是比较复杂的一步,完成一个表单的设计其实很漫长,主要分为四 ...
 - asp.net MVC4 +MVCpager
		
asp.net MVC4 +MVCpager 无刷新分页 本人菜鸟,最近在用MVC4和MVCpager做无刷新分页时,发现点击下一页时数据不是Ajax提交的,弄了好久终于找到原因,原来还是Jquery ...
 - ASP.Net MVC4+Memcached+CodeFirst实现分布式缓存
		
ASP.Net MVC4+Memcached+CodeFirst实现分布式缓存 part 1:给我点时间,允许我感慨一下2016年 正好有时间,总结一下最近使用的一些技术,也算是为2016年画上一个完 ...
 - CentOS上 Mono 3.2.8运行ASP.NET MVC4经验
		
周一到周三,折腾了两天半的时间,经历几次周折,在小蝶惊鸿的鼎力帮助下,终于在Mono 3.2.8上运行成功MVC4.在此总结经验如下: 系统平台的版本: CentOS 6.5 Mono 3.2.8 J ...
 - ASP.NET MVC4入门到精通系列目录汇总
		
序言 最近公司在招.NET程序员,我发现好多来公司面试的.NET程序员居然都没有 ASP.NET MVC项目经验,其中包括一些工作4.5年了,甚至8年10年的,许多人给我的感觉是:工作了4.5年,We ...
 - [MVC4]ASP.NET MVC4+EF5(Lambda/Linq)读取数据
		
继续上一节初始ASP.NET MVC4,继续深入学习,感受了一下微软的MVC4+EF5(EntityFramework5)框架的强大,能够高效的开发出网站应用开发系统,下面就看一下如何用MVC4+EF ...
 - 21、ASP.NET MVC入门到精通——ASP.NET MVC4优化
		
本系列目录:ASP.NET MVC4入门到精通系列目录汇总 删除无用的视图引擎 默认情况下,ASP.NET MVCE同时支持WebForm和Razor引擎,而我们通常在同一个项目中只用到了一种视图引擎 ...
 - 最新版CentOS6.5上安装部署ASP.NET MVC4和WebApi
		
最新版CentOS6.5上安装部署ASP.NET MVC4和WebApi 使用Jexus5.8.1独立版 http://www.linuxdot.net/ ps:该“独立版”支持64位的CentOS ...
 
随机推荐
- C#LINQ集合操作
			
LINQ的集合运算 List<int> lstOne = new List<int>() { 1, 55, 223, 25 }; List<int> lstTwo ...
 - vue相关ajax库的使用
			
相关库: vue-resource: vue插件, 多用于vue1.x axios: 第三方库, 多用于vue2.x vue-resource使用 // 引入模块 import VueResource ...
 - Spring Cloud  熔断机制 -- 断路器
			
Spring Cloud 入门教程(七): 熔断机制 -- 断路器 对断路器模式不太清楚的话,可以参看另一篇博文:断路器(Curcuit Breaker)模式,下面直接介绍Spring Cloud的断 ...
 - IAR调试cc2541串口遇到的Warning : Possible IDATA stack overflow detected
			
1. 遇到的错误如下,似乎是栈空间不够使用 2. 修改界面如下,增加IDATA的大小,不过最大似乎是0XFF.
 - 前端图片转base64,转格式,转blob,上传的总结
			
1. 图片文件转base64 <input accept="image/gif,image/jpeg,image/jpg,image/png" type="file ...
 - gdb 分析出错
			
1 创建测试代码test.php <?php function test1(){ while(true){ sleep(1); } }echo getmypid() "\r\n&quo ...
 - windown reids
			
记录Windown安装Redis和php_redis扩展 和Linux系统不同windown中不需要编译安装:只需要下对版本拖拽过去即可: 首先安装redis服务: 可以百度下一个,只要注意系统版本即 ...
 - 「日常训练」湫湫系列故事——设计风景线(HDU-4514)
			
题意与分析 中文题目,木得题意的讲解谢谢. 然后还是分解成两个任务:a)判环,b)找最长边. 对于这样一个无向图,强行转换成负权然后bellman-ford算法求最短是难以实现的,所以感谢没有环--我 ...
 - sql注入--高权限,load_file读写文件
			
select '<?php eval($_POST[123]) ?>' into outfile '/var/www/html/1.php'; 1.MYSQL新特性限制文件写入及替代方法 ...
 - 第三模块:面向对象&网络编程基础 第2章 网络编程
			
01-计算机基础 02-什么是网络 03-五层协议详解 04-传输层详解 05-什么是Socket 06-基于socket实现简单套接字通信 07-在简单套接字基础上加上通信循环 08-客户端与服务端 ...