码迷,mamicode.com
首页 > Web开发 > 详细

MVC 三级联动

时间:2015-07-10 18:47:49      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:

本篇实现中国省市区三级联动,先看最终效果:

初始状态:

技术分享

当选择第1个Select,第2、3个Select可供选择: 

技术分享

当选择第2个Select,第1个不变、第3个Select可供选择:

技术分享 

当选择第3个Select,第1、2个不变:

技术分享

下面是代码:

控制器Controllers\HomeController.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using 省市区__三级联动.Models;

namespace 省市区__三级联动.Controllers
{
    public class HomeController : Controller
    {
        //
        // GET: /Home/
        [HttpGet] //刚开始加载页面的时候
        public ActionResult Index()
        {
            //省份  根据编号0001查的就是省份
          
            List<ChinaStates> listsheng = new ChinaDA().SelectBysheng("0001");
            ViewBag.shengs = new SelectList(listsheng, "AreaCode", "AreaName");


       
            List<ChinaStates> listshi = new ChinaDA().SelectByshi("11");
            ViewBag.shis = new SelectList(listshi, "AreaCode", "AreaName");

           
            List<ChinaStates> listqu = new ChinaDA().SelectByqu("1101");
            ViewBag.qus = new SelectList(listqu, "AreaCode", "AreaName");


            return View();
        }
        [HttpPost]  
        public ActionResult Index(string sheng, string shi, string qu)
        {
            
            List<ChinaStates> listsheng = new ChinaDA().SelectBysheng("0001");
            ViewBag.shengs = new SelectList(listsheng, "AreaCode", "AreaName",sheng);

            List<ChinaStates> listshi = new ChinaDA().SelectByshi(sheng);
            ViewBag.shis = new SelectList(listshi, "AreaCode", "AreaName",shi);

            var b = listshi.Exists(P => P.AreaCode == shi) ? shi : listshi[0].AreaCode;
            List<ChinaStates> listqu = new ChinaDA().SelectByqu(b);
            ViewBag.qus = new SelectList(listqu, "AreaCode", "AreaName");
           
            return View();
        }

    }
}

  模型:

首先要用linq连接数据库 然后建一个类开始写方法

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace 省市区__三级联动.Models
{
    public class ChinaDA
    {
        private ChinaDataContext _Context = new ChinaDataContext();
        public List<ChinaStates> Select()
        {
            return _Context.ChinaStates.ToList();
        }
        public List<ChinaStates> SelectBysheng(string AreaCode)
        {
            var query = _Context.ChinaStates.Where(p => p.ParentAreaCode == AreaCode);
            return query.ToList();
           
        }
        public List<ChinaStates> SelectByshi(string AreaCode)
        {
            var query = _Context.ChinaStates.Where(p => p.ParentAreaCode == AreaCode);
            return query.ToList();
        }
        public List<ChinaStates> SelectByqu(string AreaCode)
        {
            var query = _Context.ChinaStates.Where(p => p.ParentAreaCode == AreaCode);
            return query.ToList();
        }
    }
}

  视图:

@using 省市区__三级联动.Models
@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    @using (Html.BeginForm("Index", "Home", FormMethod.Post))
        {
    <div>
            @Html.DropDownList("sheng",ViewBag.shengs as SelectList,new { onchange="document.forms[0].submit();"})
            @Html.DropDownList("shi",ViewBag.shis as SelectList, new { onchange="document.forms[0].submit();"})
            @Html.DropDownList("qu",ViewBag.qus as SelectList)
       
    </div>
        }
</body>
</html>

  

 

MVC 三级联动

标签:

原文地址:http://www.cnblogs.com/Mr-xue/p/4636244.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!