电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

ASP.NET MVC實現區域或城市選擇

瀏覽:196日期:2022-06-08 13:00:45

每次在"萬達影城"網上購票總會用到左上角選擇城市的功能。如下:

今天就在ASP.NET MVC中實現一下。我想最好的方式應該是寫一個插件,但自己在這方面的功力尚欠缺,如果大家在這方面有好的解決方案,希望在這一起交流,那將會更好。

大致思路如下:

  • 點擊"更換"彈出div,用bootstrap來實現
  • div中的tabs,用jqueryui來實現
  • tab項中的城市,用jquery.tmpl.min.js模版來實現

有關城市的Model:

    public class City    {public int Id { get; set; }public string Name { get; set; }public string FirstLetter { get; set; }    }

在Shared文件夾下的_Layout.cshtml中,引用jquery, jqueryui, bootstrap相關的css和js文件。

<head>    <meta charset="utf-8" />    <meta name="viewport" content="width=device-width" />    <title>@ViewBag.Title</title>    @Styles.Render("~/Content/css")    <link href="~/Content/themes/base/jquery-ui.css" rel="external nofollow"  rel="stylesheet" />    <link href="~/bootstrap/css/bootstrap.min.css" rel="external nofollow"  rel="stylesheet" />    @RenderSection("styles", required: false)    @Scripts.Render("~/bundles/jquery")    <script src="~/Scripts/jquery-ui-1.8.24.min.js"></script>    <script src="~/bootstrap/js/bootstrap.min.js"></script></head><body>    @RenderBody()        @RenderSection("scripts", required: false)</body>

在Home/Index.cshtml視圖中:

@{    ViewBag.Title = "Index";    Layout = "~/Views/Shared/_Layout.cshtml";}@section styles{    <link href="~/Content/CitySelect.css" rel="external nofollow"  rel="stylesheet" />}<nav>    <div><button type="button" data-toggle="collapse" data-target=".js-navbar-collapse">    <span>Toggle navigation</span>    <span></span>    <span></span>    <span></span></button>    </div>    <div><ul>    <li><a href="#" rel="external nofollow"  rel="external nofollow"  data-toggle="dropdown"><span id="dp">全國</span><span>[更換]</span> <b></b></a><div id="cities">    <ul><li><a href="#tabs-1" rel="external nofollow" >ABCD</a></li><li><a href="#tabs-2" rel="external nofollow" >EFGH</a></li><li><a href="#tabs-3" rel="external nofollow" >IJKL</a></li><li><a href="#tabs-4" rel="external nofollow" >MNOP</a></li><li><a href="#tabs-5" rel="external nofollow" >QRST</a></li><li><a href="#tabs-6" rel="external nofollow" >UVWX</a></li><li><a href="#tabs-7" rel="external nofollow" >&nbsp;&nbsp;YZ</a></li>    </ul>    <div id="tabs-1"><p></p>    </div>    <div id="tabs-2"><p></p>    </div>    <div id="tabs-3"><p></p>    </div>    <div id="tabs-4"><p></p>    </div>    <div id="tabs-5"><p></p>    </div>    <div id="tabs-6"><p></p>    </div>    <div id="tabs-7"><p></p>    </div></div>    </li></ul>    </div>    <!-- /.nav-collapse --></nav>@section scripts{    <script src="~/Scripts/jquery.tmpl.min.js"></script>    <script type="text/javascript">$(function () {    //tabs    $("#cities").tabs({event: "mouseover"    });    //點擊城市顯示    $("#cities").on("click", ".rc", function() {$("#dp").empty().text($(this).text());    });    //加載ABCD開頭的城市    $.getJSON("@Url.Action("GetCitiesByABCD","Home")", function(data) {if (data) {    $("#cityTemplate").tmpl(data).appendTo("#tabs-1 p");}    });    //加載EFGH開頭的城市    $.getJSON("@Url.Action("GetCitiesByEFGH","Home")", function (data) {if (data) {    $("#cityTemplate").tmpl(data).appendTo("#tabs-2 p");}    });    //加載IJKL開頭的城市    $.getJSON("@Url.Action("GetCitiesByIJKL","Home")", function (data) {if (data) {    $("#cityTemplate").tmpl(data).appendTo("#tabs-3 p");}    });    //加載MNOP開頭的城市    $.getJSON("@Url.Action("GetCitiesByMNOP","Home")", function (data) {if (data) {    $("#cityTemplate").tmpl(data).appendTo("#tabs-4 p");}    });    //加載QRST開頭的城市    $.getJSON("@Url.Action("GetCitiesByQRST","Home")", function (data) {if (data) {    $("#cityTemplate").tmpl(data).appendTo("#tabs-5 p");}    });    //加載UVWX開頭的城市    $.getJSON("@Url.Action("GetCitiesByUVWX","Home")", function (data) {if (data) {    $("#cityTemplate").tmpl(data).appendTo("#tabs-6 p");}    });    //加載YZ開頭的城市    $.getJSON("@Url.Action("GetCitiesByYZ","Home")", function (data) {if (data) {    $("#cityTemplate").tmpl(data).appendTo("#tabs-7 p");}    });});    </script>        <script id="cityTemplate" type="text/x-jQuery-tmpl"><a href="#" rel="external nofollow"  rel="external nofollow" >${city}</a>    </script>}

以上,

bootstrap顯示導航菜單,點擊"更換",彈出一個id為cities的div,其中包含jqueryui的tab。然后異步加載json數據到id為cityTemplate的模版上,最后追加到對應的區域。

在HomeController中:

using System.Linq;using System.Web.Mvc;namespace MvcApplication1.Controllers{    public class HomeController : Controller    {//// GET: /Home/public ActionResult Index(){    return View();}//獲取首字母是ABCD的城市public ActionResult GetCitiesByABCD(){    var cities =Database.GetCities()    .Where(c =>    c.FirstLetter == "A" || c.FirstLetter == "B" || c.FirstLetter == "C" || c.FirstLetter == "D");    var result = from c in citiesselect new {city = c.Name};    return Json(result, JsonRequestBehavior.AllowGet);}//獲取首字母是EFGH的城市public ActionResult GetCitiesByEFGH(){    var cities =Database.GetCities()    .Where(c =>    c.FirstLetter == "E" || c.FirstLetter == "F" || c.FirstLetter == "G" || c.FirstLetter == "H");    var result = from c in cities select new { city = c.Name };    return Json(result, JsonRequestBehavior.AllowGet);}//獲取首字母是IJKL的城市public ActionResult GetCitiesByIJKL(){    var cities =Database.GetCities()    .Where(c =>    c.FirstLetter == "I" || c.FirstLetter == "J" || c.FirstLetter == "K" || c.FirstLetter == "L");    var result = from c in cities select new { city = c.Name };    return Json(result, JsonRequestBehavior.AllowGet);}//獲取首字母是MNOP的城市public ActionResult GetCitiesByMNOP(){    var cities =Database.GetCities()    .Where(c =>    c.FirstLetter == "M" || c.FirstLetter == "N" || c.FirstLetter == "O" || c.FirstLetter == "P");    var result = from c in cities select new { city = c.Name };    return Json(result, JsonRequestBehavior.AllowGet);}//獲取首字母是QRST的城市public ActionResult GetCitiesByQRST(){    var cities =Database.GetCities()    .Where(c =>    c.FirstLetter == "Q" || c.FirstLetter == "R" || c.FirstLetter == "S" || c.FirstLetter == "T");    var result = from c in cities select new { city = c.Name };    return Json(result, JsonRequestBehavior.AllowGet);}//獲取首字母是UVWX的城市public ActionResult GetCitiesByUVWX(){    var cities =Database.GetCities()    .Where(c =>    c.FirstLetter == "U" || c.FirstLetter == "V" || c.FirstLetter == "W" || c.FirstLetter == "X");    var result = from c in cities select new { city = c.Name };    return Json(result, JsonRequestBehavior.AllowGet);}//獲取首字母是YZ的城市public ActionResult GetCitiesByYZ(){    var cities =Database.GetCities()    .Where(c =>    c.FirstLetter == "Y" || c.FirstLetter == "Z");    var result = from c in cities select new { city = c.Name };    return Json(result, JsonRequestBehavior.AllowGet);}    }}

最后呈現的效果:

有關CitySelect.css文件:

.dropdown-large {  position: static !important;}.dropdown-menu-large {  margin-left: 16px;  margin-right: 16px;  padding: 20px 0px;}.dropdown-menu-large > li > ul {  padding: 0;  margin: 0;}.dropdown-menu-large > li > ul > li {  list-style: none;}.dropdown-menu-large > li > ul > li > a {  display: block;  padding: 3px 20px;  clear: both;  font-weight: normal;  line-height: 1.428571429;  color: #333333;  white-space: normal;}.dropdown-menu-large > li ul > li > a:hover,.dropdown-menu-large > li ul > li > a:focus {  text-decoration: none;  color: #262626;  background-color: #f5f5f5;}.dropdown-menu-large .disabled > a,.dropdown-menu-large .disabled > a:hover,.dropdown-menu-large .disabled > a:focus {  color: #999999;}.dropdown-menu-large .disabled > a:hover,.dropdown-menu-large .disabled > a:focus {  text-decoration: none;  background-color: transparent;  background-image: none;  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);  cursor: not-allowed;}.dropdown-menu-large .dropdown-header {  color: #428bca;  font-size: 18px;}@media (max-width: 768px) {  .dropdown-menu-large {    margin-left: 0 ;    margin-right: 0 ;  }  .dropdown-menu-large > li {    margin-bottom: 30px;  }  .dropdown-menu-large > li:last-child {    margin-bottom: 0;  }  .dropdown-menu-large .dropdown-header {    padding: 3px 15px !important;  }}#cities {    width: 620px;    padding: 10px;}#cities ul {    width: 600px;}#cities div {    width: 600px;}#cities li{    text-align: center;    width: 80px;    height: 30px;    padding: 5px;}.rc {    margin-right: 20px;}

有關Database類:

using System.Collections.Generic;using MvcApplication1.Models;namespace MvcApplication1{    public class Database    {public static IEnumerable<City> GetCities(){    return new List<City>()    {new City(){Id = 1, Name = "包頭", FirstLetter = "B"},new City(){Id = 2, Name = "北京", FirstLetter = "B"},new City(){Id = 3, Name = "長春", FirstLetter = "C"},new City(){Id = 4, Name = "大同", FirstLetter = "D"},new City(){Id = 5, Name = "福州", FirstLetter = "F"},new City(){Id = 6, Name = "廣州", FirstLetter = "G"},new City(){Id = 7, Name = "哈爾濱", FirstLetter = "H"},new City(){Id = 8, Name = "濟南", FirstLetter = "J"},new City(){Id = 9, Name = "昆明", FirstLetter = "K"},new City(){Id = 10, Name = "洛陽", FirstLetter = "L"},new City(){Id = 11, Name = "馬鞍山", FirstLetter = "M"},new City(){Id = 12, Name = "南京", FirstLetter = "N"},new City(){Id = 13, Name = "青島", FirstLetter = "Q"},new City(){Id = 14, Name = "深圳", FirstLetter = "S"},new City(){Id = 15, Name = "天津", FirstLetter = "T"},new City(){Id = 16, Name = "威海", FirstLetter = "W"},new City(){Id = 17, Name = "西安", FirstLetter = "X"},new City(){Id = 18, Name = "煙臺", FirstLetter = "Y"},new City(){Id = 19, Name = "鄭江", FirstLetter = "Z"}    };}    }}

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對的支持。如果你想了解更多相關內容請查看下面相關鏈接

標簽: ASP.NET
相關文章:
主站蜘蛛池模板: 电子巡更系统-巡检管理系统-智能巡检【金万码】 | 上海公众号开发-公众号代运营公司-做公众号的公司企业服务商-咏熠软件 | 衬氟旋塞阀-卡套旋塞阀-中升阀门首页 | 低浓度恒温恒湿称量系统,强光光照培养箱-上海三腾仪器有限公司 | 北京易通慧公司从事北京网站优化,北京网络推广、网站建设一站式服务商-北京网站优化公司 | 济南展厅设计施工_数字化展厅策划设计施工公司_山东锐尚文化传播有限公司 | 细胞染色-流式双标-试剂盒免费代做-上海研谨生物科技有限公司 | 机床主轴维修|刀塔维修|C轴维修-常州翔高精密机械有限公司 | 恒湿机_除湿加湿一体机_恒湿净化消毒一体机厂家-杭州英腾电器有限公司 | 蓄电池回收,ups电池后备电源回收,铅酸蓄电池回收,机房电源回收-广州益夫铅酸电池回收公司 | 安全,主动,被动,柔性,山体滑坡,sns,钢丝绳,边坡,防护网,护栏网,围栏,栏杆,栅栏,厂家 - 护栏网防护网生产厂家 | 婚博会2024时间表_婚博会门票领取_婚博会地址-婚博会官网 | 精密交叉滚子轴承厂家,转盘轴承,YRT转台轴承-洛阳千协轴承 | 新疆十佳旅行社_新疆旅游报价_新疆自驾跟团游-新疆中西部国际旅行社 | 九爱图纸|机械CAD图纸下载交流中心 | 精密五金冲压件_深圳五金冲压厂_钣金加工厂_五金模具加工-诚瑞丰科技股份有限公司 | 流水线电子称-钰恒-上下限报警电子秤-上海宿衡实业有限公司 | 深圳激光打标机_激光打标机_激光焊接机_激光切割机_同体激光打标机-深圳市创想激光科技有限公司 深圳快餐店设计-餐饮设计公司-餐饮空间品牌全案设计-深圳市勤蜂装饰工程 | 远程会诊系统-手术示教系统【林之硕】医院远程医疗平台 | 高压包-点火器-高压发生器-点火变压器-江苏天网 | 上海单片机培训|重庆曙海培训分支机构—CortexM3+uC/OS培训班,北京linux培训,Windows驱动开发培训|上海IC版图设计,西安linux培训,北京汽车电子EMC培训,ARM培训,MTK培训,Android培训 | 成都热收缩包装机_袖口式膜包机_高速塑封机价格_全自动封切机器_大型套膜机厂家 | 间苯二酚,间苯二酚厂家-淄博双和化工| 高压绝缘垫-红色配电房绝缘垫-绿色高压绝缘地毯-上海苏海电气 | 乐之康护 - 专业护工服务平台,提供医院陪护-居家照护-居家康复 | 衬塑设备,衬四氟设备,衬氟设备-淄博鲲鹏防腐设备有限公司 | 可程式恒温恒湿试验箱|恒温恒湿箱|恒温恒湿试验箱|恒温恒湿老化试验箱|高低温试验箱价格报价-广东德瑞检测设备有限公司 | 酒吧霸屏软件_酒吧霸屏系统,酒吧微上墙,夜场霸屏软件,酒吧点歌软件,酒吧互动游戏,酒吧大屏幕软件系统下载 | 博博会2021_中国博物馆及相关产品与技术博览会【博博会】 | 网站建设_网站制作_SEO优化推广_百度推广开户_朋友圈网络科技 | 国资灵活用工平台_全国灵活用工平台前十名-灵活用工结算小帮手 | POM塑料_PBT材料「进口」聚甲醛POM杜邦原料、加纤PBT塑料报价格找利隆塑料 | 不锈钢轴流风机,不锈钢电机-许昌光维防爆电机有限公司(原许昌光维特种电机技术有限公司) | 车间除尘设备,VOCs废气处理,工业涂装流水线,伸缩式喷漆房,自动喷砂房,沸石转轮浓缩吸附,机器人喷粉线-山东创杰智慧 | 储能预警-储能消防系统-电池舱自动灭火装置-四川千页科技股份有限公司官网 | PC构件-PC预制构件-构件设计-建筑预制构件-PC构件厂-锦萧新材料科技(浙江)股份有限公司 | CTAB,表面活性剂1631溴型(十六烷基三甲基溴化铵)-上海升纬化工原料有限公司 | 【孔氏陶粒】建筑回填陶粒-南京/合肥/武汉/郑州/重庆/成都/杭州陶粒厂家 | 新中天检测有限公司青岛分公司-山东|菏泽|济南|潍坊|泰安防雷检测验收 | 西点培训学校_法式西点培训班_西点师培训_西点蛋糕培训-广州烘趣西点烘焙培训学院 | 【北京写字楼出租_写字楼租赁_办公室出租网/出售】-远行地产官网 |