ASP.NET MVC联动下拉框实现:省市区数据绑定示例
153 浏览量
更新于2024-08-28
收藏 170KB PDF 举报
"ASP.NET MVC下拉框联动实例解析,通过ADO.NET实现省市区联动效果"
在ASP.NET MVC框架中,开发人员经常需要处理用户界面中的交互功能,例如下拉框的联动。本实例将详细讲解如何创建两个下拉列表(DropDownList),实现选择省份后自动加载对应城市的联动效果。我们将使用ADO.NET来操作数据库,而不是Entity Framework。
首先,我们需要创建一个数据库来存储省份和城市数据。在SQL Server中,可以使用以下SQL语句来创建名为`MyAddressDB`的数据库以及`Province`和`City`两个表:
```sql
USE master;
GO
IF EXISTS (SELECT * FROM sysdatabases WHERE name='MyAddressDB')
DROP DATABASE MyAddressDB;
GO
CREATE DATABASE MyAddressDB;
GO
USE MyAddressDB;
GO
IF EXISTS (SELECT * FROM sysobjects WHERE name='Province')
DROP TABLE Province;
GO
CREATE TABLE Province (
ProvinceID INT IDENTITY(1,1) PRIMARY KEY,
ProvinceName NVARCHAR(50) NOT NULL
);
IF EXISTS (SELECT * FROM sysobjects WHERE name='City')
DROP TABLE City;
GO
CREATE TABLE City (
CityID INT IDENTITY(1,1) PRIMARY KEY,
CityName NVARCHAR(50) NOT NULL,
ProvinceID INT REFERENCES dbo.Province(ProvinceID) NOT NULL
);
```
接下来,我们需要插入一些测试数据。在这个例子中,数据是从一个名为`Temp.dbo.S_Province`和`Temp.dbo.S_City`的临时表中获取的,并插入到`Province`和`City`表中:
```sql
INSERT INTO dbo.Province
SELECT ProvinceName FROM Temp.dbo.S_Province;
INSERT INTO dbo.City (CityName, ProvinceID)
SELECT CityName, ProvinceID FROM Temp.dbo.S_City;
```
为了在ASP.NET MVC应用中实现联动效果,我们需完成以下步骤:
1. 模型(Model):创建对应的模型类,如`Province`和`City`,它们将与数据库表相对应。每个模型类应包含属性,例如`ProvinceID`、`ProvinceName`、`CityID`和`CityName`。
2. 控制器(Controller):创建一个控制器,比如`AddressController`,其中包含两个动作方法,一个用于获取所有省份(`GetProvinces`),另一个用于根据省份ID获取城市(`GetCitiesByProvinceId`)。这两个方法使用ADO.NET连接数据库并返回数据。
3. 视图(View):创建两个`DropDownList`,一个用于省份,一个用于城市。使用`@Html.DropDownListFor`辅助方法创建下拉列表,并在JavaScript或jQuery中设置事件监听器。当省份选择项改变时,发送异步请求到`GetCitiesByProvinceId`方法,获取新数据并更新城市下拉列表。
例如,在`Address`视图中,你可以这样设置`DropDownList`:
```html
@model YourNamespace.Models.AddressViewModel
@using (Html.BeginForm())
{
@Html.DropDownListFor(m => m.SelectedProvinceId, Model.Provinces)
@Html.DropDownListFor(m => m.SelectedCityId, Model.Cities, "请选择城市")
<input type="submit" value="提交" />
}
```
在JavaScript中,你可以使用jQuery的`change`事件和`$.ajax`来实现联动:
```javascript
$(document).ready(function () {
$('#SelectedProvinceId').on('change', function () {
var provinceId = $(this).val();
if (provinceId) {
$.ajax({
url: '@Url.Action("GetCitiesByProvinceId", "Address")',
data: { id: provinceId },
success: function (cities) {
var ddlCities = $('#SelectedCityId');
ddlCities.empty().append('<option value="">请选择城市</option>');
$.each(cities, function (index, city) {
ddlCities.append($('<option></option>').val(city.Value).html(city.Text));
});
}
});
}
});
});
```
以上代码展示了如何使用ASP.NET MVC和ADO.NET实现省市区联动的基本流程。通过这种方式,用户选择省份后,系统会动态地加载并显示对应城市的列表,提供更友好的用户体验。
2020-10-25 上传
2013-11-13 上传
2020-12-23 上传
2021-01-02 上传
点击了解资源详情
2009-04-03 上传
520 浏览量
2021-01-01 上传
weixin_38538381
- 粉丝: 6
- 资源: 907
最新资源
- SSM动力电池数据管理系统源码及数据库详解
- R语言桑基图绘制与SCI图输入文件代码分析
- Linux下Sakagari Hurricane翻译工作:cpktools的使用教程
- prettybench: 让 Go 基准测试结果更易读
- Python官方文档查询库,提升开发效率与时间节约
- 基于Django的Python就业系统毕设源码
- 高并发下的SpringBoot与Nginx+Redis会话共享解决方案
- 构建问答游戏:Node.js与Express.js实战教程
- MATLAB在旅行商问题中的应用与优化方法研究
- OMAPL138 DSP平台UPP接口编程实践
- 杰克逊维尔非营利地基工程的VMS项目介绍
- 宠物猫企业网站模板PHP源码下载
- 52简易计算器源码解析与下载指南
- 探索Node.js v6.2.1 - 事件驱动的高性能Web服务器环境
- 找回WinSCP密码的神器:winscppasswd工具介绍
- xctools:解析Xcode命令行工具输出的Ruby库