asp.net mvc jQuery 城市二级联动

这篇博客展示了如何利用jQuery从数据库获取数据,并实现二级联动的省份和城市选择功能。通过监听省份选择框的变更事件,动态加载对应城市的选项。涉及到的技术包括:JavaScript、jQuery、ASP.NET MVC和数据库交互。
摘要由CSDN通过智能技术生成

页面效果图:

数据库表结构:

首先在数据库中创建省级、城市的表,我的表如下:我用了一张表放下了省级、城市的数据,用level划分省份和城市,parentId表示该城市所在省份的id

主要文件有:index.cshtml,ErJLDController.cs ,数据处理层,业务处理层,还有数据库文件 。

index.cshtml:

 1 <body>
 2     <div>
 3         <select id="provinceId" >
 4          <option> 请选择省份</option>
 5         </select>
 6         <select id="cityId">
 7             <option>请选择市区</option>
 8         </select>
 9     </div>
10 
11     <script type="text/javascript">
12     
13         
14 
15         //用json从数据库里取一级列表的参数
16         $(function () {
17 
18             $.getJSON("ErJLD/getProvince/", function (obj) {
19                 $.each(obj, function (i, p) {
20                     $("#provinceId").append("<option value='"+p.id+"'>" + p.areaValue + "</option>");
21                 });
22 
23                 $("#provinceId").change(function () {
24                     //用attr()方法获取当前选择的option的value值(即p.id ,数据库里的id值,
25                     //虽然在TestController中的getCity方法中传入的是string类型的形参,但是后来需要变换成int类型, 所以value值应该为数字)
26                     var pName = $("#provinceId").attr("value");
27                     $.getJSON("ErJLD/getCity?pName=" + pName, getcity);
28                 });
29             });
30         });
31            
32       
33         
34 
35         function getcity(obj) {         
36             $("#cityId").empty();
37                         $.each(obj, function (m, v) {
38                             $("#cityId").append("<option >" + v.areaValue + "</option>");
39                         });
40        
41                     };
42                
43               
44             
45 
46     </script>
47 </body>
48 
49 Index.cshtml

View Code

 ErJLDController.cs

 1 namespace Mvcproject.Controllers
 2 {
 3     //二级联动
 4     public class ErJLDController : Controller
 5     {
 6 
 7         ZjbEntities db = new ZjbEntities();
 8         //
 9         // GET: /Test/
10         
11         public ActionResult Index()
12         {
13             //pro_city province=new pro_city();
14             
15             return View();
16         }
17 
18         public JsonResult getProvince() {
19             
20             List<pro_city> provinceList = (from p in db.pro_city where p.level == 1 select p).ToList();
21   
22 
23             JsonResult Jprovince = new JsonResult();
24             Jprovince.Data = provinceList;
25             Jprovince.JsonRequestBehavior = JsonRequestBehavior.AllowGet;
26             return Jprovince;
27 
28         }
29 
30         public JsonResult getCity(string pName)
31         {
32 
33             //string pid = (from p in db.pro_city where p.areaValue == pName select p.id).ToString();
34             //int id = int.Parse(pid);
35             int id = int.Parse(pName);
36 
37             List<pro_city> cityList = (from p in db.pro_city where p.parentId == id select p).ToList();
38   
39             JsonResult Jcity = new JsonResult();
40             Jcity.Data = cityList;
41             Jcity.JsonRequestBehavior = JsonRequestBehavior.AllowGet;
42             return Jcity;
43 
44         }
45        
46     }
47 }
48 
49 ErJLDController.cs
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

apple_51426592

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值