本例使用的是EF first code操作数据库。

一、准备数据库

级联下拉列表框,比较经典的就是省市数据表,在Model里同时创建三个类:province.cs、city.cs和dropContext.cs

1、province.cs

  [Table("province")]
public class province
{
[Key]
public int proID { get; set; }
public string proName { get; set; }
public virtual IEnumerable<city> city { get; set; }
}

2、city.cs

 public class city
{
public int cityID { set; get; }
public string cityName { set; get; }
public int proID { set; get; }
public virtual province pronvince { set; get; }
}

3、dropContext.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data; //必须添加
using System.Data.Entity; //必须添加
using System.Data.Entity.ModelConfiguration.Conventions; namespace dropdown.Models
{
public class dropContext : DbContext
{
public dropContext()
: base("name=constr")
{ }
public DbSet<city> city { get; set; }
public DbSet<province> province { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
//base.OnModelCreating(modelBuilder);
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); }
} }

二、控制器

新建dropController控制器

  public class dropController : Controller
{
private dropContext db = new dropContext();
public ActionResult Index()
{
//生成省份列表
ViewBag.pro = new SelectList(db.province, "proID", "proName");
//生成城市列表
ViewBag.city = new SelectList(db.city, "cityID", "cityName");
return View();
}
public ActionResult getData(int ID)
{
if(Request.IsAjaxRequest()) //判断是否使用ajax
{
var q = from c in db.city
where c.proID == ID
select new { c.cityID, c.cityName }; //不能查询出c.proID,否则会出错
return Json(q,JsonRequestBehavior.AllowGet); //返回json数据
}
return View();
}
}

三、视图

添加视图Index.cshtml

<script type="text/javascript">
$(function () {
$("#city").find("option").remove();
$("#pro").change(function () {
var pid = $(this).val();
$("#city").find("option").remove();
$.post("/drop/getData",{ID:pid},
function(data)
{
$.each(data,function(i,item)
{
$("<option></option>").val(item["cityID"]).text(item["cityName"]).appendTo($("#city"));
});
});
});
}); </script> <h2>下拉列表</h2>
@Html.DropDownList("pro", "请选择")
@Html.DropDownList("city","请选择")

利用JQuery ajax将参数ID传递给getData方法进行处理,getData方法处理完后返回JSON序列,将此序列绑定到城市下拉框里即可。

MVC3学习:利用mvc3+ajax实现级联下拉列表框的更多相关文章

  1. MVC3学习:利用mvc3+ajax实现全选和批量删除

    本例数据库操作使用EF code first; 先利用mvc自带的模板,先生成一个list视图,然后再手动添加复选框和删除按钮 <table> <tr> @*在标题行添加一个全 ...

  2. 在ASP.NET MVC3 中利用Jsonp跨域访问

    在ASP.NET MVC3 中利用Jsonp跨域访问 在信息系统开发的时,根据相关业务逻辑难免会多系统之间互相登录.一般情况下我们需要在多系统之间使用多个用户名和密码.这样客户就需要在多个系统之间重复 ...

  3. MVC3.0+knockout.js+Ajax 实现简单的增删改查

    MVC3.0+knockout.js+Ajax 实现简单的增删改查 自从到北京入职以来就再也没有接触MVC,很多都已经淡忘了,最近一直在看knockout.js 和webAPI,本来打算采用MVC+k ...

  4. ASP.NET MVC3入门教程之ajax交互

    本文转载自:http://www.youarebug.com/forum.php?mod=viewthread&tid=100&extra=page%3D1 随着web技术的不断发展与 ...

  5. 【Spring学习笔记-MVC-3.1】SpringMVC返回Json数据-方式1-扩展

    <Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...

  6. 【Spring学习笔记-MVC-3】SpringMVC返回Json数据-方式1

    <Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...

  7. jQuery学习笔记之Ajax用法详解

    这篇文章主要介绍了jQuery学习笔记之Ajax用法,结合实例形式较为详细的分析总结了jQuery中ajax的相关使用技巧,包括ajax请求.载入.处理.传递等,需要的朋友可以参考下 本文实例讲述了j ...

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

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

  9. Python 数据分析(二 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识

    Python 数据分析(二) 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识 第1节 groupby 技术 第2节 数据聚合 第3节 分组级运算和转换 第4 ...

随机推荐

  1. c语言const和c++const

    1.常量 常量是指值不能被改变的量,又叫做字面值 1.1常量分类 1)字符常量:'a', 'A', '*'. 2)字符串常量:"helloworld","ilovechi ...

  2. BZOJ 4765 普通计算姬 (分块 + BIT)

    4765: 普通计算姬 Time Limit: 30 Sec  Memory Limit: 256 MBSubmit: 1547  Solved: 329[Submit][Status][Discus ...

  3. Jersey RESTful WebService框架学习(八)maven搭建

    一.pom文件: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www. ...

  4. DataGuard 配置须知

    风不停,绿树荫,阳光晃眼,天真蓝,我们在奔跑,沿着斜阳,是你喘息,起伏不停...  ——朴树 1.确认primary库处于归档模式 命令:archive log list; 如果没有启用归档,请先将数 ...

  5. MIT Molecular Biology 笔记6 转录的调控

    视频  https://www.bilibili.com/video/av7973580?from=search&seid=16993146754254492690 教材 Molecular ...

  6. MIT Molecular Biology 笔记1 DNA的复制,染色体组装

    视频  https://www.bilibili.com/video/av7973580?from=search&seid=16993146754254492690 教材 Molecular ...

  7. 【repost】 原生JS执行环境与作用域深入理解

    首先,我们要知道执行环境和作用域是两个完全不同的概念. 函数的每次调用都有与之紧密相关的作用域和执行环境.从根本上来说,作用域是基于函数的,而执行环境是基于对象的(例如:全局执行环境即window对象 ...

  8. kepware http接口 swift

    读取某变量的值 import Foundation let headers = [ "Connection": "keep-alive", "Cach ...

  9. 异步多线程 ASP.NET 同步调用异步 使用Result产生死锁

    一个方法调用了async方法,要将这个方法本身设计为async. public class BlogController : Controller { public async Task<Act ...

  10. ASP.NET MVC IActionFilter IResultFilter IExceptionFilter/HandleError

    一.IActionFilter 1.基本定义 在action的执行前后进行AOP拦截. IActionFilter接口定义如下: public interface IActionFilter { // ...