现在的位置: 首页 > 综合 > 正文

在mvc中用ajax实现省市联动

2017年12月18日 ⁄ 综合 ⁄ 共 1454字 ⁄ 字号 评论关闭

省市信息存储在tblArea表中,AreaPid等于0表示省一级名称,若要找省一级信息,则select * from tblArea  areaPid=0    ;若找安徽省的县市则select * from tblArea where areapid=13

首先建立tblArea的EF类,然后建立Controllers

using C02MVC.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace C02MVC.Controllers
{
    public class HomeController : Controller
    {
        //
        // GET: /Home/
        nononodeleteImportantEntities1 data = new nononodeleteImportantEntities1();
        public ActionResult Index()
        {
            
            List<TblArea> list = data.TblArea.Where(model => model.AreaPId == 0).ToList();
            return View(list);
        }
        public ActionResult GetCity(int id)
        {
           List<TblArea> list  =data.TblArea.Where(model => model.AreaPId == id).ToList();
           return PartialView(list);
        }
    }
}

建立index视图,用来显示省份及相应的县市

@{
    Layout = null;
    
}
@model  List<C02MVC.Models.TblArea>
<!DOCTYPE html>

<html>
<head>
    <script src="~/Scripts/jquery-1.7.1.js"></script>
    <script src="~/Scripts/jquery.validate.js"></script>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
    <script type="text/javascript">
        $(function () {
            var province = $("#province");
            $("#city").load("/home/GetCity/" + province.val());
            province.change(function () {
                $("#city").load("/home/GetCity/" + province.val());     
            });
        });
    </script>
</head>
<body>
    <div>
        <select id="province">

       @foreach (var item in Model)
       {
          <option value="@item.AreaId">
              @item.AreaName
          </option>
       } 
      </select>
        <select id="city">

        </select>
    </div>
</body>
</html>

建立GetCity视图,为Ajax方式获取市县提供数据

@{
    Layout = null;
}
@model  List<C02MVC.Models.TblArea>

@foreach(var m in Model)
{
    <option value="@m.AreaId">@m.AreaName</option>
}



抱歉!评论已关闭.