1、调用分布视图

//Html辅助方法  返回参数的值  存储在ProvinceId、CityId、DistrictId中
@{Html.RenderAction("GetProvince","Home",new{ProvinceId=Model.provinceid,CityId=Model.cityid,DistrictId=Model,districtid});}

2、实体类

//省份
public class Province
{
public int ProvinceId{get;set;}
public string ProvinceName{get;set;}
} //市
public class City
{
public int CityId{get;set;}
public string CityName{get;set;}
} //县区
public class District
{
public int DistrictId{get;set;}
public string DistrictName{get;set;}
}

3、控制器方法

//省
public PartialViewResult GetProvince(int ProvinceId=,int CityId=,int DistrictId=)
{
ViewData["provinceID"]=ProvinceId;
ViewData["cityId"]=CityId;
ViewData["districtId"]=DistrictId;
List<Province> listPro=获取到省份的方法;
Return PartialView(listPro);
} //市
public PartialViewResult GetCity(int ProvinceId=,int CityId=,int DistrictId=)
{
if(ProvinceId==)
{
ViewData["provinceID"]=;
ViewData["cityId"]=;
ViewData["districtId"]=;
Return PartialView();
}
else
{
ViewData["provinceID"]=ProvinceId;
ViewData["cityId"]=CityId;
ViewData["districtId"]=DistrictId;
List<City> listPro=获取到城市的方法(ProvinceId);
Return PartialView(listPro);
}
} //县区
public ActionResult GetDistrict(int CityId=,int DistrictId=)
{
if(CityId==)
{
ViewData["cityId"]=;
ViewData["districtId"]=;
Return PartialView();
}
else
{
ViewData["cityId"]=CityId;
ViewData["districtId"]=DistrictId;
List<District> listPro=获取到县区的方法(CityId);
Return PartialView(listPro);
}
} //省市联动(异步刷新)
///<summary>
///根据传值的省份Id加载出隶属的城市
///</summary>
[HttpPost]
public JsonResult AsynGetCity()
{
string dealType=Request["GetCity"];
string id=Request["ID"];
List<City> listC=得到城市的方法(id);
return Json(listC);
} //市县区联动(异步刷新)
///<summary>
///根据传值的城市id加载出隶属的县区
///</summary>
[HttpPost]
public JsonResult AsynGetDistrict()
{
string dealType=Request["GetDistrict"];
string id=Request["ID"];
List<District> listDis=获取到县区的方法(id);
return Json(listDis);
}

4、省份视图

@model List<Province>
<select id="ddlregions1" selectset="regions" name="ddlregions1" onchange="getValue(this[selectedIndex].value)">
<option value="">--请选择--</option>
@foreach(var item in Model)
{
if((int)ViewDate["provinceID"]==item.ProvinceId)
<option value="@ViewData["provinceID"]" selected="selected">@item.ProvinceName</option>
else
<option value="@item.ProvinceId">@item.ProvinceName</option>
}
</select>
<span>省</span>
<!--市分布视图-->
@{Html.RenderAction("GetCity","Home",new {ProvinceId=ViewData["provinceID"],City=ViewData["cityId"],DistrictId=ViewData["districtId"]});} <!--Js-->
<!--Jquery引用。。。。。。。-->
<script>
function BindData(id,controlld)
{
$("#"+controlld).empty();
$("#"+controlld).append("<option value='0'>--请选择--</option>");
$.ajax({
type:"post",
url:"AsynGetCity",
dataType:"json",
data:{"dealType":"GetCity","ID":id},
success:function(result)
{
$(result).each(function(){
$("#"+controlld).append("<option value='"+this.CityId+"'>"+this.CityName+"</option>");
})
}
})
}
$(function(){
$("#ddlRegions1").change(function(){
var id=$(this).val();
$("#ddlRegions3").empty();
$("#ddlRegions3").append("<option value='0'>--请选择--</option>");
BindData(id,"ddlRegions2");
})
})
</script>

5、城市视图

@model List<City>
<select id="ddlRegions2" onchange="getValue(this[selectedIndex].value)" selectset="regions">
@if((int)ViewData["ProvinceID"]==)
{
<option value=''>--请选择--</option>
}else
{
<option value=''>--请选择--</option>
foreach(var item in Model)
{
if((int)ViewData["cityId"]==item.CityId || (int)ViewData["cityId"]==)
<option value="@ViewData["cityId"]" selected="selected">@item.CityName</option>
else
<option value="@item.CityId">@item.CityName</option>
}
}
</select>
<span>市</span>
<!--县区-->
@{Html.RenderAction("GetDistrict","Home",new{CityId=ViewData["cityId"],DistrictId=ViewData["districtId"]});} <!--Js-->
<!--jQuery引用-->
<script>
function BindData(id,controlld)
{
$("#"+controlld).empty();
$("#"+controlld).append("<option value='0'>--请选择--</option>");
$.ajax({
type:"post",
url:"AsynGetDistrict",
dataType:"json",
data:{"dealType":"GetDistrict","ID":id}
success:function(result)
{
$(result).each(function(){
$("#"+controlld).append("<option value='"+this.DistrictId+"'>"+this.DistrictName+"</option>")
})
}
})
}
$(function(){
$("#ddlRegions2").change(function(){
var id=$(this).val();
BindData(id,"ddlRegions3");
})
})
</script>

6、县区视图

@model List<District>
<select id="ddlRegions3" name="ddlRegions3" onchange="getValue(this[selectedIndex].value)" selectset="regions">
@if((int)ViewData["cityId"]==)
<option value="">--请选择--</option>
else
<option value="">--请选择--</option>
@foreach(var item in Model)
{
if((int)ViewData["districtId"]==item.DistrictId)
<option value="@ViewData["districtId"]">@item.DistrictName</option>
else
<option value="@item.DistrictId">@item.DistrictName</option>
}
</select>
<span>县/区</span>

省市区联动(MVC分布视图)的更多相关文章

  1. js replace 全局替换 以表单的方式提交参数 判断是否为ie浏览器 将jquery.qqFace.js表情转换成微信的字符码 手机端省市区联动 新字体引用本地运行可以获得,放到服务器上报404 C#提取html中的汉字 MVC几种找不到资源的解决方式 使用Windows服务定时去执行一个方法的三种方式

    js replace 全局替换   js 的replace 默认替换只替换第一个匹配的字符,如果字符串有超过两个以上的对应字符就无法进行替换,这时候就要进行一点操作,进行全部替换. <scrip ...

  2. MVC+EFCore 完整教程18 -- 升级分布视图至 View Component

    之前我们详细介绍过分布视图(partial view),在有一些更加复杂的场景下,.net core为我们提供了更加强大的组件 view  component, 可以认为view component是 ...

  3. 基于AngularJs + Bootstrap + AngularStrap 省市区联动实践

    什么是 AngularJs?网上一大堆资料,没能真正说明白. AngularJs 就是一个函数库,算不上一个框架,源码2万2千多行,提供了前端MVC的开发方式, 有双向绑定,指令等特性,这是具有革命性 ...

  4. 【兼容写法】HttpServerUtility.Execute 在等待异步操作完成时被阻止。关键词:MVC,分部视图,异步

    异常处理汇总-后端系列 http://www.cnblogs.com/dunitian/p/4523006.html MVC6之前的版本,对分部视图的异步支持不是很好 问题: 视图里面有分布视图:@{ ...

  5. ASP.NET MVC Razor视图(2)

    昨天介绍了一些Razor的基本语法,几天接着向下说: 补成一个,上次介绍了怎么输出原样的文本,用<text></text>标签,下面再介绍一种语法: @{@:我爱北京}  这个 ...

  6. 使用asp.net mvc部分视图渲染html

    为了提升用户体验,一般我们采用ajax加载数据然后根据数据渲染html,渲染html可以使用前端渲染和服务器端渲染. 前端渲染 使用前端模版引擎或MVC框架,例如underscore.js的templ ...

  7. MVC分部视图@Html.Partial

    加载分布视图的方式: //1.以视图名使用当前文件夹下的视图(如果没有找到,则搜索 Shared 文件夹) @Html.Partial("_test") //加载对应文件 /Vie ...

  8. EF5+MVC4系列(11)在主视图中用Html.RenderPartial调用分部视图(ViewDate传值);在主视图中按钮用ajax调用子action并在子action中使用return PartialView返回分布视图(return view ,return PartialView区别)

    一:主视图中使用Html.RenderPartial来调用子视图(注意,这里是直接调用子视图,而没有去调用子Action ) 在没有使用母版页的主视图中(也就是设置了layout为null的视图中), ...

  9. ASP.NET MVC——Razor视图引擎

    Razor是MVC框架视图引擎,我们今天就来说一说Razor视图引擎. 首先还是来创建一个基础项目叫Razor来演示. 先来定义一个Model叫Product public class Product ...

随机推荐

  1. The Socket API, Part 5: SCTP

    转:http://www.linuxforu.com/2011/12/socket-api-part-5-sctp/ By Pankaj Tanwar on December 29, 2011 in  ...

  2. [Arduino] 基于Xbee Pro和网络技术的智能公交系统设计

    转自:http://www.21ic.com/app/rf/201112/99474.htm 引言 公共交通具有个体交通无法比拟的强大优势,优先发展城市公共交通系统是解决大.中城市交通问题的最佳途径. ...

  3. 补充:tableView优化总结

    tableView优化方式总结 (说明:一下只是我自己的小总结,会有不足,望大神指正,多谢大家了) 1 缓存 cell 的行高.目的方便第二遍访问 cell. 2 减少图片的blend 操作.包括:设 ...

  4. Jmeter参数化的4种方法

    用Jmeter测试时包含两种情况的参数,一种是在url中,一种是请求中需要发送的参数. URL中的参数,如:http://blog.da-fang.com/index.php/2010/06/01/j ...

  5. Oracle 基础 游标

    一:游标的基本原理 游标用来处理从数据库中检索的多行记录(使用SELECT语句).利用游标,程序可以逐个地处理和遍历一次检索返回的整个记录集. 为了处理SQL语句,Oracle将在内存中分配一个区域, ...

  6. Gvim 在进行文件对比时报cannot read or write temp files

    本机环境为win7 64位旗舰版,gvim安装的是GVim7.4.解决办法如下: 在安装目录下有个"_vimrc"文件.修改19行.将 if &sh =~ '\<cm ...

  7. yum中baserul路径中的空格

    配置yum源时,比如指定本地挂载的光盘时,路径中包含空格.在不使用链接的情况下,用"\"进行转义不行,把路径加单.双引号也不可行.正确做法是把空格用%20代替.同理,其他不可识别的 ...

  8. xe5 android listbox的 TMetropolisUIListBoxItem

    listbox实现以下效果: 关键代码,采用数据集的方式 type PpatientData=^RpatientData; RpatientData= record patient_id:string ...

  9. C#导出DataGridView到Excel

    public class ExcelHelper { private static object missing = Type.Missing; #region ================导出= ...

  10. Discuz!图片查看插件(支持鼠标缩放、实际大小、旋转、下载)

    Discuz!图片查看插件(支持鼠标缩放.实际大小.旋转.下载) 图片查看是网站中的常用功能,用于展示详细的图片.在discuz图片插件的基础上进行了改造,因此这篇文章主要从以下几个方面来讨论图片查看 ...