mvc关于三级联动修改时数据回显

时间:2021-01-07 21:44:18

在网上找了好久,都没有找到自己想要的那种效果,最后还是自己写出来了, 虽然方法有点笨。

这是Controller里

 1 public ActionResult Edit(string id)
 2         {
 3             //查询收货地址信息
 4             var data = AddressDirectoryLogic.GetById(id);
 5 
 6             //先把省份查出来装到ViewBag 里
 7             var provinces = RegionLogic.GetChinaProvinces();
 8             List<SelectListItem> pItems = new List<SelectListItem>();
 9             foreach (var p in provinces)//根据列表获取省名称和ID 
10             {
11                 pItems.Add(new SelectListItem { Text = p.Name, Value = p.Id });
12             }
13             ViewBag.Province = pItems;
14 
15             //城市
16             var city = RegionLogic.GetCities(data.Province);
17             List<SelectListItem> item = new List<SelectListItem>();//获取城市列表 
18             foreach (var c in city)//根据列表获取城市名称和ID  
19             {
20                 item.Add(new SelectListItem { Text = c.Name, Value = c.Id });
21             }
22             ViewBag.City = item;
23             //把收货地址信息里的省份和城市值保存,好做显示
24             ViewBag.ProvinceId = data.Province;
25             ViewBag.CityId = data.City;
26 
27             return View(data);
28         }

js

 1 $(document).ready(function () {
 2             //GetProvince();//加载省份
 3             $('#T_Province').val('@ViewBag.ProvinceId');
 4             $('#T_City').val('@ViewBag.CityId');
 5             $("#T_Province").change(function () { GetCity() });//加载城市
 6         });
 7         function GetProvince() {
 8             $("#T_Province").empty();//清空省份SELECT控件
 9             $.getJSON("/AddressDirectory/GetProvincelist", function (data) {
10                 $.each(data, function (i, item) {
11                     $("<option></option>").val(item["Id"]).text(item["Name"]).appendTo($("#T_Province"));
12                 });
13                 GetCity();
14             });
15         }
16         function GetCity() {
17             $("#T_City").empty();//清空城市SELECT控件
18             $.getJSON("/AddressDirectory/GetCitylist", { pid: $("#T_Province").val() },
19             function (data) {
20                 $.each(data, function (i, item) {
21                     $("<option></option>").val(item["Value"]).text(item["Text"]).appendTo($("#T_City"));
22                 });
23             });
24         }

html

 @Html.DropDownListFor(model=>model.Province, (List<SelectListItem>)ViewBag.Province,new {@class= "combobox", id = "T_Province" })
                   
 @Html.DropDownListFor(model => model.City,(List<SelectListItem>)ViewBag.City,new {@class= "combobox" , id = "T_City" })

上面的部分js 是参照别人的。下面是部分js 的源码;

源码:http://blog.csdn.net/qq_17202783/article/details/43371421