本文记录了一个在MVC4中使用PartialView实现级联效果的小例子。

准备工作

首先准备一下要级联的数据,新建两个类:Province和City

  1. public class Province
  2. {
  3. public string Id { get; set; }
  4.  
  5. public string Name { get; set; }
  6. }
  7.  
  8. public class City
  9. {
  10. public string Id { get; set; }
  11.  
  12. public string Name { get; set; }
  13.  
  14. public string Province { get; set; }
  15. }

并在Controller中准备好数据,

  1. List<Province> provinceList = new List<Province>();
  2. List<City> cityList = new List<City>();
  3.  
  4. private void InitData()
  5. {
  6. provinceList.Add(new Province { Id = "", Name = "河北省" });
  7. provinceList.Add(new Province { Id = "", Name = "河南省" });
  8. provinceList.Add(new Province { Id = "", Name = "广东省" });
  9.  
  10. cityList.Add(new City { Id = "", Name = "石家庄", Province = "" });
  11. cityList.Add(new City { Id = "", Name = "邢台", Province = "" });
  12. cityList.Add(new City { Id = "", Name = "保定", Province = "" });
  13.  
  14. cityList.Add(new City { Id = "", Name = "郑州", Province = "" });
  15. cityList.Add(new City { Id = "", Name = "安阳", Province = "" });
  16. cityList.Add(new City { Id = "", Name = "洛阳", Province = "" });
  17.  
  18. cityList.Add(new City { Id = "", Name = "广州", Province = "" });
  19. cityList.Add(new City { Id = "", Name = "中山", Province = "" });
  20. cityList.Add(new City { Id = "", Name = "佛山", Province = "" });
  21. }

Controller

在控制器中创建一个返回分步视图的Action,在前台第一级调用的时候触发这个action,返回第二级需要的数据。

  1. public ActionResult ShowCity(string provinceId)
  2. {
  3. InitData();
  4. var result = cityList.Where(city => city.Province == provinceId);
  5. ViewBag.City = result;
  6. return PartialView("PartialCity");
  7. }

View

先创建一个PartialView:PartialCity.cshtml,如下:

  1. @{
  2. ViewBag.Title = "PartialCity";
  3. }
  4.  
  5. 城市: @Html.DropDownList("city_dropdownlist", new SelectList(ViewBag.City, "Id", "Name"))

在主View中的使用这个PartialView,

  1. <div id="province">
  2. 省份: @Html.DropDownList("province_dropdownlist", new SelectList(ViewBag.Province, "Id", "Name"))
  3. </div>
  4. <div id="city">
  5. @Html.Partial("PartialCity")
  6. </div>

最后,需要在主View页面写几行js代码,给第一级dropdownlist注册一个change事件,并且在事件触发的时候调用刚刚创建的ShowCity方法

  1. @Scripts.Render("~/Scripts/jquery-1.7.1.min.js");
  2. <script type="text/javascript">
  3. $(document).ready(init);
  4.  
  5. function init() {
  6. $("select[name='province_dropdownlist']").change(function () {
  7. var selectedProvince = $(this).val();
  8. ShowCityWithSelectedProvince(selectedProvince);
  9. });
  10. }
  11.  
  12. function ShowCityWithSelectedProvince(province) {
  13. $.ajax({
  14. url: "@Url.Action("ShowCity", "Home")",
  15. data: { provinceId: province },
  16. success: function (data) {
  17. $("#city").html(data);
  18. }
  19. });
  20. }

这样,就实现了级联效果。

以上

MVC4中使用Html.DropDownList实现级联的更多相关文章

  1. [原创]MYSQL中利用外键实现级联删除和更新

    MySQL中利用外键实现级联删除.更新 MySQL支持外键的存储引擎只有InnoDB,在创建外键的时候,要求父表必须有对应的索引,子表在创建外键的时候也会自动创建对应的索引.在创建索引的时候,可以指定 ...

  2. MVC4中基于bootstrap和HTML5的图片上传Jquery自定义控件

    场景:mvc4中上传图片,批量上传,上传前浏览,操作.图片进度条. 解决:自定义jquery控件 没有解决:非图片上传时,会有浏览样式的问题; 解决方案; 1.样式 – bootstrap 的css和 ...

  3. Autofac在MVC4中牛刀小试

    Autofac是传说中速度最快的一套.NET高效的依赖注入框架.Autofac的介绍与使用请去参考Autofac全面解析系列(版本:3.5).   这里介绍的已经挺详细的啦. 下面我就先来说说MVC4 ...

  4. bootstrap中table页面做省市区级联效果(级联库见前面级联编辑)(非select下拉框)

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  5. ASP.NET MVC4中的bundles特性引发服务器拒绝访问(403错误)

    在ASP.NET MVC4中微软引入了bundles特性,这个特性可以将服务器端的多个Javascript或多个css文件捆绑在一起作为一个单一的URL地址供客户端浏览器调用,从而减少了页面上Http ...

  6. MVC4中使用Ninject

    MVC4中使用Ninject 1.NuGet获取Ninject.dll .NET技术交流群 199281001 .欢迎加入. 2.全局注册  Global.asax.cs  RegisterNinje ...

  7. mvc4中jquery-ui日期控件datepicker的应用

    mvc4中jquery-ui日期控件datepicker的应用 本文适合mvc中日期选择需要的同学: 假设读者已经具备了mvc4和javascript中的相关知识 一. 开始项目之前把项目中目录:/C ...

  8. GridView中两个DropDownList联动

    GridView中两个DropDownList联动 http://www.cnblogs.com/qfb620/archive/2011/05/25/2057163.html Html: <as ...

  9. WebSocket在ASP.NET MVC4中的简单实现

    WebSocket在ASP.NET MVC4中的简单实现 2013-12-21 20:48 by 小白哥哥, 810 阅读, 3 评论, 收藏, 编辑 WebSocket 规范的目标是在浏览器中实现和 ...

随机推荐

  1. c++ 的vector、array和数组的比较

    ref:  http://blog.csdn.net/haust_wang/article/details/49848169

  2. wd mycloud nas新玩法

    最近家里的小米路由器坏了,主要是硬盘读取不出,小米之家也无能为力,本想继续在小米之家买个小米路由器,后来了解到了nas,于是想折腾下.我的nas型号是wd mycloud,3TB内置硬盘.功能:可以组 ...

  3. SpringMVC-Controller

    接上: web.xml Spring-servlet.xml Controller层是控制层,在其类上添加@Controller注解,会被Spring-servlet.xml中的<context ...

  4. hadoop 安装笔记

    http://www.powerxing.com/install-hadoop/ 查询相关链接~!

  5. MathType有哪些功能

    随着寒流呼呼来临,期末考也不放过我们,不知道你们是在题海里遨游,还是已做好了挑战准备呢.不管你是哪种情况,现在就有一款玩转理工科的强大编辑公式强悍来袭,不管你是学生.教师,还是理科专业工作者,Math ...

  6. Notepad++下载需要的插件(如何在Notepad++中手动下载需要的插件)

    需求说明: 下载在实际工作中需要的Notepad++插件,或者是因为Notepadd++设置的原因导致不能直接在软件中显示插件. 即手动登录到指定的链接中进行插件的下载. 操作过程: 1.以xmlto ...

  7. windows,cmd中,如何切换到磁盘的根目录下

    需求描述: 在windows的cmd中操作,有的时候也会遇到切换了很多的目录,然后需要切换到根目录的情况 操作过程: 1.通过cd \的方式,切换回当前磁盘的根目录下 备注:未切换之前,在Driver ...

  8. php 实现 java com.sun.org.apache.xml.internal.security.utils.Base64 Byte数组加密

    <?php function java_base64_encode($arr){ $str = ''; foreach ($arr as $key => $value) { $str .= ...

  9. 查看内存使用情况:free

    free命令用于显示内存的使用情况,常见用法如下: [root@localhost ~]$ free # 以KB为单位显示内存使用情况 [root@localhost ~]$ free -m # 以M ...

  10. 关于MCU的烧录,下载与其他接口的比较(二)

    单片机应用系统由硬件和软件组成,软件的载体是硬件的程序存储器,程序存储器采用只读存储器,这种存储器在电源关闭后,仍能保存程序,在系统上电后,CPU可取出这些指令重新执行.只读存储器(Read Only ...