问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

怎么运用extjs mvc 与thinkphp实现省市区三级联动

发布网友 发布时间:2022-04-26 15:57

我来回答

2个回答

懂视网 时间:2022-05-04 02:01

才学的MVC哈。 最近有个需要,从数据库读取省市县表的数据,通过MVC4搭建的程序展现出来,网上找了很多资料,都没一个全的,能用的,就自己动手。 一、建立MVC项目:City 二、创建数据模型 CityModel 三个表:T_Province 省份,T_City 城市,T_District 区县

才学的MVC哈。

最近有个需要,从数据库读取省市县表的数据,通过MVC4搭建的程序展现出来,网上找了很多资料,都没一个全的,能用的,就自己动手。


一、建立MVC项目:City

二、创建数据模型

CityModel

三个表: T_Province 省份,T_City 城市,T_District 区县

USE [liandong]
GO
/****** Object: Table [dbo].[T_Province] ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE 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 ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE 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 ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE 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";
}

                                                            
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
怎么样制作个人简历 上海海事大学对外交流多麽出国会不会容易一些 上海海事大学提前批今年要几号才能出来 怎么查找大学家长群 北京慧学堂在线教育学校的老师打电话来说要交3480元钱,给孩子半年的在... 左脸颊长青春痘是什么原因? 某商店上午9:00开始营业全天营业8小时下午几点关门 (2012?泗县模拟)某商店每天10:00-18:00营业,全天营业88小时. 某商店每天9:20-18:00营业,全天营业()小时。老师早上7:30到校,下午4... 商场营业时间是上午8:00-下午6:00,一位顾客向一位老先生嗯打听时间了... ext 代码 下面的代码是什么意思 谢谢 ext.getCmp 是什么意思 j2ee:后台使用EXT中的问题 ​Extjs页面创建了一个窗口代码如下,请教大家如何通过itemId 来直接... 郑州有哪些好玩的地方?求推荐 郑州有什么好玩的地方没拜托各位大神 ExtJS 3.2.1 里面Ext.get("name").dom.value 怎么取不到值啊?Ext.get... extjs中的EL是什么意思? 求ext与后台交互的例子 最近有点腰酸背痛的,听朋友说锤疗有用,郑州有没有推荐的? 光伏流水线的组件EL检测仪跟测试仪哪家的比较好? Ext的行扩展实现二级嵌套 怎么提高EL组件检测呢?东声科技的工业视觉表面检测可以吗? 郑州有什么适合周末去玩得的地方? EXT自定义事件的主要步骤有哪些? ext 合并行 ,怎么实现?? ExtJS弹出框层次问题 ext 里面的el和dom是什么意思??? ExtJS Ext.get和Ext.getCmp的区别 测试组件EL的稳压电源功率、电压、电流应该调到多少 Ext.get()与Ext.fly()又什么不同? 深入浅出ExtJS的完整目录 Extjs4中,getCmp 和 getComponent的区别是啥呢 如何让Ext的RowExpander实现异步调用 如何提高示波器垂直测量精度? 示波器测量信号周期,幅度时如何才能保证其测量精度 示波器的精度是否需要经常校准? 示波器有哪两种工作模式,如何切换 示波器有哪些模式呢?使用前需要设置的 什么叫示波器的Y-T模式、XY模式和XYZ模式? 示波器模式设置envelope模式是什么意思? 示波器的XY模式和TY模式有什么区别吗? 示波器如何设定role模式? 示波器怎么调xy模式? 致远电子示波器的Y-T模式是什么意思? 示波器的余晖模式有什么作用? 请问示波器中的trigger是干什么用的 用示波器xy模式是干什么的,用xy模式能显示指定图形吗(在单片机指定信号输出下) 示波器中的X-Y模式有哪些作用? 帅邦是杂牌吗? 示波器的XY模式由什么用?