一、后台代码
在model层中定义一个类
[Table("City")] public class CityModel { [Key,DatabaseGenerated(DatabaseGeneratedOption.None)] public int ProvinceId { get; set; } public string CName{ get; set; } public int CityId { get; set; } }
数据迁移后,在数据访问层
public List<CityModel> BindCity(int id) { return db.Citys.Where(m => m.CityId == id).ToList(); }
业务逻辑层调用
public List<CityModel> BindCity(int id) { return dal.BindCity(id); }
控制器操作
[HttpGet] public ActionResult BindCity(int id) { return Json(bll.BindCity(id),JsonRequestBehavior.AllowGet); }
二、前台代码
页面布局-在框架中的一个表
<tr> <td><span style="color:red">*</span>籍贯</td> <td colspan="3"> <select v-model="AddData.ProvinceId" v-on:change="BindCityCity"> <option v-for="(item,index) in bindCityProvince" :value="item.ProvinceId">{{item.CName}}</option> </select> <select v-model="AddData.CityId" v-on:change="BindCityTown"> <option v-for="(item,index) in bindCityCity" :value="item.ProvinceId">{{item.CName}}</option> </select> <select v-model="AddData.TownId"> <option v-for="(item,index) in bindCityTown" :value="item.ProvinceId">{{item.CName}}</option> </select> </td> </tr>
随后进行实际操作
<script> let app = new Vue({ el: "#app", data() { return { bindCityProvince: [], bindCityCity: [], bindCityTown:[] } }, methods: { BindCityProvince() { axios.get('/Staff/BindCity?id=0').then(res => { this.bindCityProvince = res.data; this.bindCityProvince.unshift({ "ProvinceId": "0", "CName": "请选择" }); }) }, BindCityCity() { this.bindCityCity = []; this.bindCityTown = []; axios.get('/Staff/BindCity?id=' + this.AddData.ProvinceId).then(res => { this.bindCityCity = res.data; this.bindCityCity.unshift({ "ProvinceId": "0", "CName": "请选择" }); this.AddData.CityId = this.bindCityCity[0].CityId; }) }, BindCityTown() { this.bindCityTown = []; axios.get('/Staff/BindCity?id=' + this.AddData.CityId).then(res => { this.bindCityTown = res.data; this.bindCityTown.unshift({ "ProvinceId": "0", "CName": "请选择" }); this.AddData.TownId = this.bindCityTown[0].TownId; }) } }, created: function () {this.BindCityProvince(); } }) </script>
在其中 我们先将省份的下拉框绑定之后 将城市和区县清空
然后再将城市绑定 区县同上