在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的使用的更多相关文章

  1. ASP.NET MVC4+EasyUI+EntityFrameWork5权限管理系统——菜单模块的实现(二)

    ASP.NET MVC4+EasyUI+EntityFrameWork5权限管理系统——数据库的设计(一) 菜单和模块是在同一个表中,采用的是树形结构,模块菜单表结构如下代码: USE [Permis ...

  2. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(44)-工作流设计-设计表单

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(44)-工作流设计-设计表单 系列目录 设计表单是比较复杂的一步,完成一个表单的设计其实很漫长,主要分为四 ...

  3. asp.net MVC4 +MVCpager

    asp.net MVC4 +MVCpager 无刷新分页 本人菜鸟,最近在用MVC4和MVCpager做无刷新分页时,发现点击下一页时数据不是Ajax提交的,弄了好久终于找到原因,原来还是Jquery ...

  4. ASP.Net MVC4+Memcached+CodeFirst实现分布式缓存

    ASP.Net MVC4+Memcached+CodeFirst实现分布式缓存 part 1:给我点时间,允许我感慨一下2016年 正好有时间,总结一下最近使用的一些技术,也算是为2016年画上一个完 ...

  5. CentOS上 Mono 3.2.8运行ASP.NET MVC4经验

    周一到周三,折腾了两天半的时间,经历几次周折,在小蝶惊鸿的鼎力帮助下,终于在Mono 3.2.8上运行成功MVC4.在此总结经验如下: 系统平台的版本: CentOS 6.5 Mono 3.2.8 J ...

  6. ASP.NET MVC4入门到精通系列目录汇总

    序言 最近公司在招.NET程序员,我发现好多来公司面试的.NET程序员居然都没有 ASP.NET MVC项目经验,其中包括一些工作4.5年了,甚至8年10年的,许多人给我的感觉是:工作了4.5年,We ...

  7. [MVC4]ASP.NET MVC4+EF5(Lambda/Linq)读取数据

    继续上一节初始ASP.NET MVC4,继续深入学习,感受了一下微软的MVC4+EF5(EntityFramework5)框架的强大,能够高效的开发出网站应用开发系统,下面就看一下如何用MVC4+EF ...

  8. 21、ASP.NET MVC入门到精通——ASP.NET MVC4优化

    本系列目录:ASP.NET MVC4入门到精通系列目录汇总 删除无用的视图引擎 默认情况下,ASP.NET MVCE同时支持WebForm和Razor引擎,而我们通常在同一个项目中只用到了一种视图引擎 ...

  9. 最新版CentOS6.5上安装部署ASP.NET MVC4和WebApi

    最新版CentOS6.5上安装部署ASP.NET MVC4和WebApi 使用Jexus5.8.1独立版 http://www.linuxdot.net/ ps:该“独立版”支持64位的CentOS ...

随机推荐

  1. 优龙FS2410开发板学习过程遇到问题总结

    以下的问题及其解决办法是基于优龙FS2410开发板,不定期更新 ============================================================= 开发学习环境 ...

  2. linux 网络编程 1---(基本概念)

    1.TCP和UDP协议 共同点:同为传输层协议 不同点: TCP:有连接,可靠 UPD 无连接,不保证可靠 TCP(即传输控制协议): 是一种面向连接的传输层协议,它是能提供高可靠性通信(即,数据无误 ...

  3. dfs 队列

    题目来源  poj 1562 Description The GeoSurvComp geologic survey company is responsible for detecting unde ...

  4. 【BZOJ1564】【NOI2009】二叉查找树(动态规划)

    [BZOJ1564][NOI2009]二叉查找树(动态规划) 题面 BZOJ 洛谷 题目描述 已知一棵特殊的二叉查找树.根据定义,该二叉查找树中每个结点的数据值都比它左儿子结点的数据值大,而比它右儿子 ...

  5. 北京Uber优步司机奖励政策(4月1日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  6. 成都Uber优步司机奖励政策(2月1日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  7. CakePHP2.x 发送邮件

    cake提供了多种发送邮件的方法,并且简单实用.以2.x为例 第一步 创建并添加邮件配置信息 拷贝app\Config\email.php.default 为email.php 打开在EmailCon ...

  8. Visual Studio 智能提示功能消失解决办法

    步骤如下: 开始菜单 -->所有程序-->Visual Studio 2012文件夹 --> Visual Studio Tools --> Developer Command ...

  9. git的一些操作指令

    1. mkdir learn 创建learn文件夹(也可不用命令创建,直接右击新建即可)   cd learn进入learn文件夹   git init  把learn文件夹 变成 可以用git管理的 ...

  10. php单例模式和工厂模式

    单例模式:防止重复实例化,避免大量的new操作,减少消耗系统和内存的资源,使得有且仅有一个实例对象 header("Content-type: text/html; charset=utf- ...