MVC5+Ajax三级联动

1、在这里我准备三张表给大家写一个关于三级联动(省,市,区)

2、不多说看代码

controlers代码: 1  public class S_ProvinceController : Controller
 2     {
 3         private readonly IS_ProvinceService _provinceService;
 4         private readonly IS_CityService _cityService;
 5         private readonly IS_DistrictService _districtService;
 6         public S_ProvinceController(IS_ProvinceService provinceService, IS_CityService cityService, IS_DistrictService districtService)
 7         {
 8             _cityService = cityService;
 9             _provinceService = provinceService;
10             _districtService = districtService;
11         }
12         public ActionResult Index()
13         {
14             S_ProvinceViewModel model =new S_ProvinceViewModel();
15
16
17             model.S_ProvinceSelectList = new List<SelectListItem>();
18             model.S_CitySelectList=new List<SelectListItem>();
19             model.S_DistrictSelectList = new List<SelectListItem>();
20             var province = _provinceService.AllS_Province();
21             var provinceSelectList = province.Select(o => new SelectListItem() { Text = o.ProvinceName, Value = o.ProvinceID.ToString() }).ToList();
22             provinceSelectList.Insert(0, new SelectListItem() { Text = @"-请选择-", Value = "-1" });
23             model.S_ProvinceSelectList = provinceSelectList;
24             return View(model);
25
26         }
27
28         public JsonResult GetCity(int id)
29         {
30             var json = _cityService.AllS_S_City(id);
31             json.Insert(0, new S_CityDto() { CityName = @"-请选择-", CityID = -1 });
32             return Json(json, JsonRequestBehavior.AllowGet);
33         }
34
35         public JsonResult GetDistrict(int id)
36         {
37             var json =_districtService.AllS_District(id);
38             json.Insert(0, new S_DistrictDto() { DistrictName = @"-请选择-", DistrictID = -1 });
39             return Json(json, JsonRequestBehavior.AllowGet);
40         }

3、后面的两个方法都是根据Id查询返回两个json4、view  js写法如下:
 1 <script language="javascript">
 2
 3     $(function () {
 4
 5
 6         //三级联动
 7         $("#provinceId").change(function () {
 8             var selec = $(this).val();
 9             var url = "/MagicAdmin/S_Province/GetCity/";
10             $("#cityId").find("option").remove();
11             $("#districtId").find("option").remove();
12             $.getJSON(url + selec, function (data) {
13                 $.each(data, function (i, item) {
14                     if (item["CityID"] == "-1") {
15                         $("<option></option>").val(item["CityID"]).text("-请选择-").appendTo($("#cityId"));
16                     } else {
17                         $("<option></option>").val(item["CityID"]).text(item["CityName"]).appendTo($("#cityId"));
18                     }
19                 });
20                 var select2 = $("#cityId").val();
21                 var url2 = "/MagicAdmin/S_Province/GetDistrict/";
22                 $("#districtId").find("option").remove();
23                 $.getJSON(url2 + select2, function (data) {
24                     $.each(data, function (i, item) {
25                         if (item["DistrictID"] == "-1") {
26                             $("<option></option>").val(item["DistrictID"]).text("-请选择-").appendTo($("#districtId"));
27                         } else {
28                             $("<option></option>").val(item["DistrictID"]).text(item["DistrictName"]).appendTo($("#districtId"));
29                         }
30                     });
31                 });
32
33             });
34         })
35         $("#cityId").change(function () {
36             var select2 = $("#cityId").val();
37             var url2 = "/MagicAdmin/S_Province/GetDistrict/";
38             $("#districtId").find("option").remove();
39             $.getJSON(url2 + select2, function (data) {
40                 $.each(data, function (i, item) {
41                     if (item["DistrictID"] == "-1") {
42                         $("<option></option>").val(item["DistrictID"]).text("-请选择-").appendTo($("#districtId"));
43                     } else {
44                         $("<option></option>").val(item["DistrictID"]).text(item["DistrictName"]).appendTo($("#districtId"));
45                     }
46                 });
47             });
48
49         })
50     })
51 </script>

5、html代码如下

@Html.DropDownListFor(q => q.provinceId, Model.S_ProvinceSelectList)
 @Html.DropDownListFor(q => q.cityId, Model.S_CitySelectList,"-请选择-")  
 @Html.DropDownListFor(q => q.districtId, Model.S_DistrictSelectList,"-请选择-")

6、效果:

MVC5+Ajax三级联动,布布扣,bubuko.com

时间: 2024-10-24 20:46:19

MVC5+Ajax三级联动的相关文章

ajax验证表单元素规范正确与否 ajax展示加载数据库数据 ajax三级联动

一.ajax验证表单元素规范正确与否 以用ajax来验证用户名是否被占用为例 1创建表单元素<input type="text" id="t"> 2在js中用keyup事件来进行操作 3创建ajax格式和内容:格式: $.ajax({ url:"哪一个服务端处理器", data:{"自己起名",所需要传给处理器的数据}, type:"post", dataType:"json"

使用 AJAX + 三级联动 实现分类出全国各地的省,市,区

使用AJAX + 三级联动  实现分类出全国各地的省,市,区 也可以将下面的显示页面所写的 function循环,封装成js文件,就是在写代码软件里创建一个js文件,就和创建一个HTML或php文件一样.直接在显示页面引用! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"

jquery json ajax三级联动

province_city_area.jsp 1 <%@ page language="java" pageEncoding="UTF-8"%> 2 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 3 <html> 4 <head> 5 <script type="text/javascript"

AJAX 三级联动例题

用ajax三级联动写一个关于省市区下拉列表的联动 数据库中的表: id是这条数据的主键,dname是地区名称,parentid是父级id 页面效果: 先实例化一个district类 package com.hanqi.model; public class District { private String id; private String dname; private String parentid; public District(String id, String dname, Str

ajax三级联动下拉菜单

ajax写三级联动,先写一个文件类吧,以后用的时候直接调用即可: 来找一张表: 实现: 中国地域的三级联动:省.市.区: 图: 说一下思路: (1)当用户选择省份的时候触发事件,把当前的省份的id通过ajax发出请求传递到服务端的程序中 (2)比如取中国地域,中国是0001,那么自带号为0001的便是中国地域: 北京的代号为11,那么子代号为11的便是北京时的市区, 也就是说根据主代号查询子代号: (3)服务端根据客户端的请求,查询数据库,并按照一定的格式返回给客户端 显示页面非常简单,只需要一

example_ThinkPHP+AJAX三级联动

sanji.html <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <load href ="__PUBLIC__/JQ/jquery-1.12.4.min.js"/> </head> <body> <h1&

第七十二天上课 ajax三级联动插件

js(界面)threeLinkage.js $(document).ready(function() { $('#threeLinkage').html("<select id='sheng'></select><select id='shi'></select><select id='qu'></select>"); //向主界面填充三个下拉列表 fill('0001','#sheng'); //填充一级下拉列表

ajax 三级联动商品分类(转载)

转载  自  jines     http://www.cnblogs.com/lijinblogs/p/5759399.html 思路分析:效果:当页面加载时,利用ajax异步向后台请求数据,加载一级商品类别,当选择一级商品时加载二级商品,选择二级商品加载三级商品. 实现:1.当拿到数据后加载pid为0的商品,并动态创建option将商品追加到一级菜单中,并设置value值2.当选择一级商品时加载pid=当前id的商品,并创建option将商品追加到二级菜单中,并设置value值3.当选择二级

AJAX 三级联动

html代码 <select id="str1"> <option>加载中...</option> </select> <select id="str2"> <option>加载中...</option> </select> <select id="str3"> <option>加载中...</option> <