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

准备工作

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

    public class Province
{
public string Id { get; set; } public string Name { get; set; }
} public class City
{
public string Id { get; set; } public string Name { get; set; } public string Province { get; set; }
}

并在Controller中准备好数据,

        List<Province> provinceList = new List<Province>();
List<City> cityList = new List<City>(); private void InitData()
{
provinceList.Add(new Province { Id = "", Name = "河北省" });
provinceList.Add(new Province { Id = "", Name = "河南省" });
provinceList.Add(new Province { Id = "", Name = "广东省" }); cityList.Add(new City { Id = "", Name = "石家庄", Province = "" });
cityList.Add(new City { Id = "", Name = "邢台", Province = "" });
cityList.Add(new City { Id = "", Name = "保定", Province = "" }); cityList.Add(new City { Id = "", Name = "郑州", Province = "" });
cityList.Add(new City { Id = "", Name = "安阳", Province = "" });
cityList.Add(new City { Id = "", Name = "洛阳", Province = "" }); cityList.Add(new City { Id = "", Name = "广州", Province = "" });
cityList.Add(new City { Id = "", Name = "中山", Province = "" });
cityList.Add(new City { Id = "", Name = "佛山", Province = "" });
}

Controller

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

        public ActionResult ShowCity(string provinceId)
{
InitData();
var result = cityList.Where(city => city.Province == provinceId);
ViewBag.City = result;
return PartialView("PartialCity");
}

View

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

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

在主View中的使用这个PartialView,

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

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

@Scripts.Render("~/Scripts/jquery-1.7.1.min.js");
<script type="text/javascript">
$(document).ready(init); function init() {
$("select[name='province_dropdownlist']").change(function () {
var selectedProvince = $(this).val();
ShowCityWithSelectedProvince(selectedProvince);
});
} function ShowCityWithSelectedProvince(province) {
$.ajax({
url: "@Url.Action("ShowCity", "Home")",
data: { provinceId: province },
success: function (data) {
$("#city").html(data);
}
});
}

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

以上

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. 基于bootstrap的select(可多选)

    如图:

  2. Hbase学习之javaApI封装

    http://qindongliang.iteye.com/blog/2096140  

  3. Cookie示例

    //caozuocookie        var webusername = "";        function getCookie(name){ var arr,reg=n ...

  4. fork函数和vfork函数的区别--19

    fork()与vfock()都是创建一个进程,那他们有什么区别呢?总结有以下三点区别: 1.  fork  ():子进程拷贝父进程的数据段,代码段     vfork ( ):子进程与父进程共享数据段 ...

  5. EF--CodeFirst

    1,增加EntityFramework的引用 2,创建实体类 public class Invoice { public Invoice() { LineItems = new List<Lin ...

  6. diamond types are not supported at this language level

    在intellij导入git项目之后出现 diamond types are not supported at this language level错误 或者String等报错 File->P ...

  7. 简单的网络爬虫程序(Web Crawlers)

    程序比较简单,但是能体现基本原理. package com.wxisme.webcrawlers; import java.io.*; import java.net.*; /** * Web Cra ...

  8. js判断手机型号

    由于oppo手机自带浏览器的高度底部多了144px导航栏 所以:专门针对oppo手机做适配: var dowphone = document.getElementById("dowphone ...

  9. 卸载vue-cli

    全局安装:npm install vue-cli -g; 全局卸载:npm uninstall vue-cli -g; 查看vue版本,vue -V 回车,查看vue最新的版本.

  10. JZOJ.5325【NOIP2017模拟8.21】九九归一

    Description