才学的mvc哈。
最近有个需要,从数据库读取省市县表的数据,通过mvc4搭建的程序展现出来,网上找了很多资料,都没一个全的,能用的,就自己动手。
一、建立mvc项目:city
二、创建数据模型
citymodel
三个表: t_province 省份,t_city 城市,t_district 区县
use [liandong]go/****** object: table [dbo].[t_province] ******/set ansi_nulls ongoset quoted_identifier ongocreate table [dbo].[t_province]( [proid] [int] not null, [proname] [nvarchar](50) not null, [prosort] [int] null, [proremark] [nvarchar](50) null) on [primary]go/****** object: table [dbo].[t_district] ******/set ansi_nulls ongoset quoted_identifier ongocreate table [dbo].[t_district]( [id] [int] not null, [disname] [nvarchar](30) not null, [cityid] [int] not null, [dissort] [int] null) on [primary]go/****** object: table [dbo].[t_city] ******/set ansi_nulls ongoset quoted_identifier ongocreate table [dbo].[t_city]( [cityid] [int] not null, [cityname] [nvarchar](50) not null, [proid] [int] null, [citysort] [int] null) on [primary]go
后面提供省市县的城市数据数据.sql。
三、建立控制器
citycontroller
using system;using system.collections.generic;using system.linq;using system.web;using system.web.mvc;using city.models;namespace city.controllers{ public class citycontroller : controller { // // get: /city/ dbentities db = new dbentities();//数据链接 public actionresult index() //前台展示的页面 { return view(); } /// /// 获取省份 /// public jsonresult getprovincelist() { iqueryable queryresult = db.t_province;//获取省份t_province表的数据 return json(queryresult.tolist(), jsonrequestbehavior.allowget); } /// /// 获取城市 /// /// /// public jsonresult getcitylist(int pid)//根据省份id获取城市 { list list = db.t_city.where(c => c.proid == pid).tolist();//城市id对应值 list item = new list();//获取城市列表 foreach (var city in list)//根据列表获取城市名称和id { item.add(new selectlistitem { text = city.cityname, value = city.cityid.tostring() }); } return json(item, jsonrequestbehavior.allowget); } public jsonresult getdistrictlist(int cid)//根据城市id获取区县id { list list = db.t_district.where(a => a.cityid == cid).tolist();//区县id对应值 list item = new list();//获取区县列表 foreach (var district in list)//根据列表获取区县名称和id { item.add(new selectlistitem { text = district.disname, value = district.id.tostring() }); } return json(item, jsonrequestbehavior.allowget); } }}
四、建立路由
routeconfig
using system;using system.collections.generic;using system.linq;using system.web;using system.web.mvc;using system.web.routing;namespace city{ public class routeconfig { public static void registerroutes(routecollection routes) { routes.ignoreroute({resource}.axd/{*pathinfo}); routes.maproute( name: default, url: {controller}/{action}/{id}, defaults: new { controller = city, action = index, id = urlparameter.optional } ); } }}
五、项目增加jquery-1.7.2.min.js引用。
六、建立前台views,文件夹:city;文件名:index
@{ viewbag.title = index;}省份请选择城市请选择
乡镇请选择
省市区三级联动数据库mssql:http://download.csdn.net/detail/qq_17202783/8415187
