目录 第 1章 ASP.NET运行及开发环境 ·· 1 1.1 ASP.NET概述 ··· 1 1.1.1静态页面和动态页面 ········ 1 1.1.2 .NET Framework ······ 1 1.1.3 ASP.NET特性· 2 1.1.4 ASP.NET的开发模式 ······· 2 1.2 IIS····· 3 1.2.1 IIS 10的安装 ·· 3 1.2.2 IIS 10中的网站、Web应用程序和虚拟目录 ······ 4 1.2.3 IIS Express······· 7 1.3 Visual Studio Community 2019 ····· 8 1. 3.1开发环境概览 · 8 1. 3.2使用解决方案管理 VSC 2019中新建的网站 ···· 10 1.3.3发布 Web应用 ······· 12 1.3.4复制网站 ······· 14 1.4 小结 14 1.5 习题 15 第 2章 ASP.NET网站文件、 jQuery和 Bootstrap· 17 2.1 .html文件和 XHTML5······ 17 2.1.1 .html文件结构 ······· 17 2.1.2常用的 XHTML5元素 ··· 18 实例 2-1 认识常用的 XHTML5元素········ 19 2.2 .aspx文件 20 2. 2.1单文件页模型 ········ 21 实例 2-2 熟悉单文件页模型 ··· 21 2. 2.2代码隐藏页模型 ···· 22 实例 2-3 熟悉代码隐藏页模型 ········ 22 2.3 .css文件和 CSS常识 ········ 23 2.3.1定义 CSS3样式 ····· 23 2.3.2 CSS3样式位置 ······ 24 实例 2-4 运用页面样式 ·· 25 实例 2-5 运用外部样式表 ······· 26 2.4 .js文件和 JavaScript常识 · 27 2.4.1 JavaScript代码位置········ 27 实例 2-6 熟悉<head>元素中的 JavaScript代码 27 实例 2-7 熟悉<body>元素中的 JavaScript代码 28 实例 2-8 运用独立的 .js文件··· 28 2.4.2 JavaScript运用实例········ 29 实例 2-9 实现图片动态变化效果 ····· 29 实例 2-10实现一个简易时钟 · 30 2.5 jQuery······ 31 2.5.1 jQuery基础语法 ···· 31 2.5.2 jQuery运用实例 ···· 32 实例 2-11 利用 jQuery管理 XHTML元素········ 32 实例 2-12利用 jQuery实现一个时间数据来源于服务器端的时钟 ····· 34 2.6 .xml文件和 XML常识 ····· 35 实例 2-13表达一个 XML格式的早餐菜单 ······ 35 2.7 Web.config········ 36 2.8 Global.asax······· 37 2.9 Bootstrap · 37 实例 2-14利用 Bootstrap设计表单 · 38 2.10小结 ······· 39 2.11 习题······· 40 第 3章 C#和 ASP.NET的结合 ······ 42 3.1 C#概述 ···· 42 3.2 .NET Framework命名空间 42 3.3 编程规范 · 43 3.3.1程序注释 ······· 43 3.3.2命名规则 ······· 43 3.4 常量与变量 ······ 44 3.4.1常量声明 ······· 44 3.4.2变量声明 ······· 45 3.4.3修饰符 ·· 45 3. 4.4局部变量作用范围 45 3.5 数据类型 · 46 3.5.1值类型 ·· 46 实例 3-1 运用枚举类型变量 ··· 47 3.5.2引用类型 ······· 48 目录 V 3. 5.3装箱和拆箱 ··· 49 3.6 运算符····· 50 3.7 流程控制 · 51 3.7.1选择结构 ······· 51 实例 3-2 运用 switch语句······· 52 3.7.2循环结构 ······· 53 实例 3-3 运用 while语句 ········ 53 实例 3-4 运用 for语句 ··· 54 实例 3-5 运用 foreach语句 ····· 55 3.7.3异常处理 ······· 56 实例 3-6 运用 throw语句········ 56 实例 3-7 运用 try…catch…finally结构····· 57 3.8 自定义 ASP.NET类·· 59 3.8.1类的常识 ······· 59 3.8.2属性 ······ 60 实例 3-8 定义 Account类的属性 ····· 60 3.8.3构造函数 ······· 61 实例 3-9 定义 Account类的构造函数 ······ 61 3.8.4方法 ······ 61 实例 3-10定义 Account类的存款和取款方法 ·· 61 实例 3-11 结合 Account类和 ASP.NET页面 ···· 62 3.8.5事件 ······ 63 实例 3-12在 AccountEvent类中增加账户金额不足事件并运用事件 · 63 3.8.6继承 ······ 65 实例 3-13实现继承类 ···· 65 3.9 ASP.NET页面调试··· 65 3.10 C#其他重要特性 ····· 66 3. 10.1自动属性 ····· 66 3. 10.2隐含类型局部变量 ········ 67 3. 10.3匿名类型 ····· 67 3. 10.4对象与集合初始化器 ···· 68 3. 10.5扩展方法 ····· 68 3.10.6 Lambda表达式 ···· 69 3.11 小结······· 70 3.12习题 ······· 70 第 4章 ASP.NET标准控件 ··· 73 4.1 ASP.NET页面事件处理概述 ····· 73 4.1.1 ASP.NET页面事件 73 4.1.2 IsPostBack属性 ····· 73 实例 4-1 运用 IsPostBack属性 ········ 74 4.2 ASP.NET服务器控件概述 75 4.2.1 HTML服务器控件简介 · 75 4.2.2 Web服务器控件简介 ····· 75 4.3 常用 ASP.NET标准控件 ··· 75 4.3.1 Label控件 ····· 76 实例 4-2 通过键盘快捷键激活特定文本框 ······· 76 4.3.2 TextBox控件· 77 实例 4-3 综合运用 TextBox控件····· 77 4.3.3 Button、LinkButton和 ImageButton控件 79 实例 4-4 利用 Button控件执行客户端脚本 ······ 79 4.3.4 DropDownList控件 ········ 80 实例 4-5 实现联动的下拉列表 ········ 81 4.3.5 ListBox控件 · 83 实例 4-6 实现数据项在 ListBox控件之间的移动 ····· 83 4.3.6 CheckBox和 CheckBoxList控件 ····· 84 实例 4-7 运用 CheckBoxList控件 ··· 85 4.3.7 RadioButton和 RadioButtonList控件 ······· 86 4.3.8 Image和 ImageMap控件 ········ 86 实例 4-8 利用 ImageMap控件设计导航栏 ········ 87 4.3.9 HyperLink控件······ 88 实例 4-9 组合使用 HyperLink和 Image控件···· 88 4.3.10 Table控件 ··· 88 实例 4-10动态生成表格 89 4.3.11 Panel和 PlaceHolder控件 ····· 90 实例 4-11 利用 Panel实现简易注册页面 · 90 实例 4-12利用 PlaceHolder动态添加控件 ······· 92 4.4 小结 93 4.5 习题 94 第 5章 ASP.NET窗体验证 ··· 96 5.1 窗体验证概述 ·· 96 5.2 ASP.NET服务器验证控件 97 5.2.1 RequiredFieldValidator控件 ···· 97 实例 5-1 禁止空数据且同时要改变初始值 ······· 98 5.2.2 CompareValidator控件 ··· 99 实例 5-2 运用 CompareValidator控件 ······ 99 5.2.3 RangeValidator控件······ 100 实例 5-3 运用 RangeValidator控件 100 5.2.4 RegularExpressionValidator控件 ···· 101 实例 5-4 验证电子邮件地址 · 102 目录 VII 5.2.5 CustomValidator控件···· 103 实例 5-5 验证必须输入一个偶数 ··· 103 5.2.6 ValidationSummary控件········ 106 实例 5-6 综合运用验证控件 · 106 5.3 小结······· 108 5.4 习题······· 109 第 6章 HTTP请求、响应及状态管理 ··111 6.1 HTTP请求 ······111实例 6-1 利用 QueryString在页面间传递数据信息 ··111实例 6-2 利用 ServerVariables和 Browser返回服务器端和客户端信息 ······113 6.2 HTTP响应 ······114 实例 6-3 利用 Write()方法输出 XHTML文本 ·114 实例 6-4 利用 Redirect()方法重定向页面 115 6.3 HttpServerUtility ······117 实例 6-5 运用 HttpServerUtility对象·······117 6.4 跨页面提交 ·····118 实例 6-6 运用跨页面提交技术 ·······119 6.5 状态管理 ········ 120 6.5.1 ViewState····· 120 6.5.2 HiddenField控件 · 121 6.5.3 Cookie 121 实例 6-7 利用 Cookie限制页面访问 ······ 122 6.5.4 Session 124 实例 6-8 利用 Session限制页面访问 ······ 125 6.5.5 Application ·· 126 实例 6-9 统计网站在线人数 · 127 6.6 小结······· 128 6.7 习题······· 128 第 7章数据访问 131 7.1 数据访问概述 131 7.2 建立 SQL Server Express数据库 ······ 132 7.3 使用数据源控件实现数据访问 133 实例 7-1 利用 LinqDataSource和 GridView显示表数据 ·· 134 7.4 使用 LINQ实现数据访问 ········ 136 7. 4.1语言集成查询 LINQ ····· 136 7.4.2 Entity Framework概述 · 137 7.4.3基于 Entity Framework利用 LINQ查询数据 ·· 138 实例 7-2 基于 Entity Framework利用 LINQ实现投影····· 138 实例 7-3 基于 Entity Framework利用 LINQ实现选择····· 139 实例 7-4 基于 Entity Framework利用 LINQ实现排序····· 139 实例 7-5 基于 Entity Framework利用 LINQ实现分组····· 140 实例 7-6 基于 Entity Framework利用 LINQ实现聚合操作 ······ 140 实例 7-7 基于 Entity Framework利用 LINQ实现直接引用对象连接 ········ 141 实例 7-8 基于 Entity Framework利用 LINQ实现连接····· 142 实例 7-9 基于 Entity Framework利用 LINQ实现模糊查询 ······ 142 7.4.4利用 Entity Framework管理数据 ··· 142 实例 7-10利用 Entity Framework插入数据 ···· 143 实例 7-11 利用 Entity Framework修改数据 ···· 143 实例 7-12利用 Entity Framework删除数据 ···· 144 实例 7-13利用 Entity Framework调用存储过程 ····· 144 7.4.5 LINQ to XML概述······· 145 7.4.6利用 LINQ to XML管理 XML文档······· 145 实例 7-14利用 LINQ to XML创建 XML文档········ 145 实例 7-15利用 LINQ to XML查询指定属性的元素 ········ 146 实例 7-16利用 LINQ to XML插入元素 147 实例 7-17利用 LINQ to XML修改元素 147 实例 7-18利用 LINQ to XML删除元素 148 7.5 小结······· 148 7.6 习题······· 149 第 8章数据绑定 151 8.1 数据绑定概述 151 8.2 ListControl类控件 ·· 151 实例 8-1 结合使用 DropDownList和 LINQ显示数据······ 152 实例 8-2 根据选择项填充列表框内容 ···· 153 8.3 GridView控件 ········ 154 8. 3.1分页和排序 · 155 实例 8-3 分页和排序 GridView中数据 ·· 155 8. 3.2定制数据绑定列 ·· 157 实例 8-4 自定义 GridView数据绑定列 ·· 157 8. 3.3使用模板列 · 159 实例 8-5 运用 GridView模板列····· 160 8.3.4利用 GridView编辑、删除数据 ···· 162 实例 8-6 为 GridView中“删除”链接按钮添加客户端提示信息 ···· 162 实例 8-7 结合 GridView和独立页修改数据 ··· 164 8. 3.5显示主从表 · 167 实例 8-8 在同一页显示主从表 ······ 167 实例 8-9 在不同页显示主从表 ······ 169 8.4 Repeater控件· 172 实例 8-10利用 Repeater控件展示数据列表 ··· 172 目录 IX 8.5 小结······· 173 8.6 习题······· 174 第 9章 ASP.NET三层架构 · 176 9.1 ASP.NET三层架构概述 ·· 176 9.2 搭建 ASP.NET三层架构 · 177 实例 9-1 搭建基于 ASP.NET三层架构的 MyPetShop ······ 177 9.3 基于 ASP.NET三层架构的用户管理 180 9.3.1用户注册 ····· 180 实例 9-2 实现 MyPetShop的用户注册功能 ···· 180 9.3.2用户登录 ····· 185 实例 9-3 实现 MyPetShop的用户登录功能 ···· 185 9. 3.3用户登录状态和权限 ···· 188 实例 9-4 根据不同用户呈现不同的登录状态和权限 ······· 188 9. 3.4用户密码修改 ······ 190 实例 9-5 修改已登录一般用户的密码 ···· 191 9. 3.5用户密码重置 ······ 193 实例 9-6 重置用户密码 194 9.4 小结······· 199 9.5 习题······· 199 第 10章主题、母版和用户控件 ·· 201 10.1主题 ····· 201 10. 1.1主题概述 · 201 10. 1.2自定义主题 ······ 201 10. 1.3使用主题 · 202 实例 10-1 动态切换主题 ····· 203 10.2母版页 · 205 10. 2.1母版页概述 ······ 205 10. 2.2创建母版页 ······ 205 实例 10-2 创建母版页 205 10. 2.3创建内容页 ······ 206 实例 10-3 创建内容页 206 10.3用户控件 ······ 207 10. 3.1用户控件概述 ·· 207 10. 3.2创建用户控件 ·· 208 10. 3.3使用用户控件 ·· 209 实例 10-4 使用用户控件 ····· 209 10.4小结 ····· 210 10.5习题 ····· 210 第 11章网站导航 ······· 212 11.1 网站地图 ······ 212 11. 1.1网站地图文件 ··· 212 实例 11-1创建网站地图 ····· 213 11. 1.2嵌套网站地图文件 ···· 214 实例 11-2创建嵌套网站地图 ······ 214 11.2 SiteMapPath控件显示导航 ···· 215 实例 11-3利用 SiteMapPath控件显示导航 ·· 215 11.3 TreeView控件显示导航 216 11.3.1 TreeView控件·· 216 实例 11-4运用 TreeView控件····· 217 11.3.2使用 TreeView控件实现导航 ···· 220 实例 11-5利用 TreeView控件显示导航 ······· 220 11.4 Menu控件显示导航 ······ 221 实例 11-6利用 Menu控件显示导航菜单 ····· 221 11. 5 在母版页中使用网站导航 ······ 221 实例 11-7实现基于母版页的网站导航 222 11.6 小结 ····· 223 11.7习题····· 223 第 12章 ASP.NET Ajax······· 225 12.1 Ajax基础 ····· 225 12.1.1 Ajax概述 225 12.1.2 ASP.NET Ajax技术 ·· 226 12.2 ASP.NET Ajax服务器控件 ····· 226 12.2.1 ScriptManager控件··· 226 12.2.2 UpdatePanel控件 ······ 228 实例 12-1 使用内部按钮刷新 UpdatePanel控件···· 229 实例 12-2 使用外部按钮刷新 UpdatePanel控件···· 230 实例 12-3 在同一个页面中使用多个 UpdatePanel控件· 232 12.2.3 Timer控件········ 233 实例 12-4 运用 Timer控件 · 234 12.2.4 UpdateProgress控件 · 236 实例 12-5 运用 UpdateProgress控件···· 236 12.3 AjaxControlToolkit程序包 ····· 237 实例 12-6 运用 CalendarExtender控件· 240 实例 12-7 运用 PasswordStrength控件· 241 12.4 小结 ····· 242 12.5 习题 ····· 243 第 13章 Web服务 ······ 245 13.1 Web服务及其运用 ········ 245 13.1.1 Web服务概述 ·· 245 13.1.2建立 ASP.NET Web服务 ··· 246 实例 13-1 建立 ASP.NET Web服务······ 246 13.1.3调用 ASP.NET Web服务 ··· 248 实例 13-2 调用 ASP.NET Web服务······ 249 实例 13-3 运用基于 Web服务的 AutoCompleteExtender控件 ········ 250 13.2 小结 ····· 253 13.3 习题 ····· 253 第 14章文件处理 ······· 255 14. 1 驱动器、文件夹和文件操作 ·· 255 14. 1.1获取驱动器信息 ········ 255 实例 14-1 显示 Web服务器上所有驱动器的信息 · 255 14. 1.2文件夹操作 ······ 257 实例 14-2 计算指定文件夹的大小 ······· 258 14. 1.3文件操作 · 260 实例 14-3 文件的创建、复制、删除和移动操作 ·· 262 14.2 读写文件 ······ 265 14.2.1 Stream类· 265 实例 14-4 利用 FileStream类读写文件 267 14.2.2 Reader和 Writer类 ··· 269 实例 14-5 利用 StreamReader和 StreamWriter读写文本文件 270 实例 14-6 利用 BinaryReader和 BinaryWriter读写二进制数据文件 ······· 271 14.3 文件上传 ······ 273 实例 14-7 利用 FileUpload实现文件上传 ····· 273 14.4 小结 ····· 275 14.5 习题 ····· 275 第 15章 MyPetShop应用程序 ····· 277 15. 1 系统总体设计和开发思路 ······ 277 15. 1.1系统功能模块设计 ···· 277 15. 1.2用户控件设计 ·· 279 15. 1.3系统数据库总体设计 279 15.1.4 Web.config配置文件 279 15.1.5基于 VSC 2019开发 MyPetShop应用程序的总体思路 280 15.2 MyPetShop.mdf数据库设计··· 281 15. 2.1数据表设计 ······ 281 15. 2.2数据表联系设计 ········ 283 15. 3用户控件设计 ······· 284 15. 3.1“热销商品自动定时刷新”用户控件 · 284 15. 3.2“商品分类列表”用户控件 ········ 284 15. 3.3“最新商品列表”用户控件 ········ 285 15. 3.4“商品分类及商品导航”用户控件 ····· 285 15. 3.5“网站导航”用户控件 ······· 285 15. 3.6“用户状态”用户控件 ······· 285 15. 3.7“天气预报”用户控件 ······· 286 15. 4前台显示页面设计 ········ 286 15.4.1母版页 ····· 286 15.4.2首页 287 15. 4.3商品详细信息页面 ···· 288 15. 4.4商品搜索页面 ·· 288 15. 5用户注册和登录模块设计 ······ 289 15. 5.1注册新用户 ······ 289 15. 5.2用户登录 · 290 15. 5.3修改用户密码 ·· 290 15. 5.4找回用户密码 ·· 291 15. 5.5退出系统 · 291 15. 6购物车模块设计 ··· 291 15. 6.1购物车存储设计与实现 ····· 291 15. 6.2购物车页面设计 ········ 292 15. 6.3购物车功能的设计与实现 · 292 15. 7订单处理模块设计 ········ 293 15. 7.1创建订单 · 293 15. 7.2查看订单 · 294 15. 8后台管理模块设计 ········ 294 15. 8.1商品分类管理 ·· 294 15. 8.2供应商信息管理 ········ 294 15. 8.3商品信息管理 ·· 295 15. 8.4订单管理 · 296 15.9小结 ····· 298 15.10 习题··· 299