社区
ASP
帖子详情
可以用ASP程序,设定HTML表单中file控件的上传文件路径吗?
jerrylu2003
2003-08-21 03:39:33
需要访问file控件的什么属性?谢谢。
...全文
32
7
打赏
收藏
可以用ASP程序,设定HTML表单中file控件的上传文件路径吗?
需要访问file控件的什么属性?谢谢。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
萝卜波
2003-10-19
打赏
举报
回复
不可以
Struggling
2003-10-19
打赏
举报
回复
<script language=javascript>
function window.onload()
{
file.focus();
var WshShell=new ActiveXObject("WScript.Shell"); //会有安全提示
WshShell.sendKeys("c:\\test.txt"); //向文本框里发送东东
}
</script>
<input name=file type=file>
litao3029
2003-08-29
打赏
举报
回复
我也遇到类似的问题啊!你要是实现了告诉我啊 谢谢
litao3029@tom.com
WQ771211
2003-08-21
打赏
举报
回复
不行,安全问题
jerrylu2003
2003-08-21
打赏
举报
回复
本来是客户端用户选择的,但是我想用程序指定客户端的一个文件,然后自动提交表单,再通过程序处理,上传该文件到服务器
makay
2003-08-21
打赏
举报
回复
file控件的上传文件路径?
你要传到哪去,是通过表单一起传到数据库里面吗?说清楚点。file控件是用过选择的。
onlysgirl
2003-08-21
打赏
举报
回复
不可以
ASP
.NET4高级
程序
设计第4版 带目录PDF 分卷压缩包 part1
手动优化了PDF的书签,书签可折叠,书签链接以目录方式保存,多达1000多页,每页都做了书签定位,手都累酸啦。 ============================== 因权限只能到60MB,分卷压缩了,共3个压缩包,需下载完3个一起解压, ==============================
ASP
.NET 4高级
程序
设计(第4版)》【原版书为:Pro
ASP
.NET 4 in C# 2010】是
ASP
.NET领域的鸿篇巨制,全面讲解了
ASP
.NET4的各种特性及其背后的工作原理,并给出了许多针对如何构建复杂、可扩展的网站从实践
中
得出的建议。书
中
还深入讲述了其他
ASP
.NET图书遗漏的高级主题,如自定义
控件
的创建、图像处理、加密等。此外,《
ASP
.NET 4高级
程序
设计(第4版)》专门提供了两章的内容来教你如何用Ajax 技术制作快速响应的页面,以及如何使用微软的
ASP
.NETAJAX平台。另外,还专门介绍了
ASP
.NET4 新增的功能,如MVC 和动态数据等。 《
ASP
.NET 4高级
程序
设计(第4版)》适合各层次的
ASP
.NET
程序
员阅读。 =================== 第一部分 核心概念 第1章
ASP
.NET简介 1.1
ASP
.NET的7大要点 1.1.1 要点1:
ASP
.NET是同.NETFramework集成在一起的 1.1.2 要点2:
ASP
.NET是编译执行的,而不是解释执行的 1.1.3 要点3:
ASP
.NET支持多语言 1.1.4 要点4:
ASP
.NET运行在公共语言运行库内 1.1.5 要点5:
ASP
.NET是面向对象的 1.1.6 要点6:
ASP
.NET支持所有的浏览器 1.1.7 要点7:
ASP
.NET易于部署和配置 1.2
ASP
.NET的演变 1.2.1
ASP
.NET1.0和
ASP
.NET1.1 1.2.2
ASP
.NET2.0 1.2.3
ASP
.NET3.5 1.2.4
ASP
.NET4 1.2.5 Silverlight 1.3 总结 第2章 Visual Studio 2.1 Visual Studio 2.1.1 网站和Web项目 2.1.2 创建无项目文件的网站 2.1.3 设计网页 2.2 Visual StudioIDE 2.2.1 解决方案资源管理器 2.2.2 文档窗口 2.2.3 工具箱 2.2.4 错误列表和任务列表 2.2.5 服务器资源管理器 2.3 代码编辑器 2.3.1 添加
程序
集引用 2.3.2 智能感知和大纲显示 2.3.3 Visual Studio 2010改进 2.4 编码模型 2.4.1 代码隐藏文件如何与页面连接 2.4.2
控件
标签如何与页面变量连接 2.4.3 事件如何与事件处理
程序
连接 2.5 Web项目 2.5.1 基于项目的开发 2.5.2 创建Web项目 2.5.3 迁移旧版Visual Studio创建的网站 2.6 Visual Studio调试 2.6.1 单步调试 2.6.2 变量监视 2.6.3 高级断点 2.7 WebDevelopment Helper 2.8 总结 第3章 Web窗体 3.1 页面处理 3.1.1
HTML
表单
3.1.2 动态用户界面 3.1.3
ASP
.NET事件模型 3.1.4 自动回送 3.1.5 视图状态 3.1.6 X
HTML
兼容性 3.1.7 客户端
控件
ID 3.2 Web窗体处理阶段 3.2.1 页面框架初始化 3.2.2 用户代码初始化 3.2.3 验证 3.2.4 事件处理 3.2.5 自动数据绑定 3.2.6 清除 3.2.7 页面流示例 3.3 作为
控件
容器的页面 3.3.1 显示
控件
树 3.3.2 页头 3.3.3 动态
控件
的创建 3.4 Page类 3.4.1 Session、Application和Cache 3.4.2 Request 3.4.3 Response 3.4.4 Server 3.4.5 User 3.4.6 Trace 3.4.7 访问其他类
中
的HTTP上下文 3.5 总结 第4章 服务器
控件
4.1 服务器
控件
的类型 4.2
HTML
服务器
控件
4.2.1
Html
Control类 4.2.2
Html
ContainerControl类 4.2.3
Html
InputControl类 4.2.4
HTML
服务器
控件
类 4.2.5 设置Style特性和其他属性 4.2.6 通过编程创建服务器
控件
4.2.7 处理服务器端事件 4.3 Web
控件
4.3.1 WebControl基类 4.3.2 基本的Web
控件
类 4.3.3 单位 4.3.4 枚举 4.3.5 颜色 4.3.6 字体 4.3.7 焦点 4.3.8 默认按钮 4.3.9 可滚动面板 4.3.10 处理Web
控件
事件 4.4 List
控件
4.4.1 Selectable列表
控件
4.4.2 BulletedList
控件
4.5 输入验证
控件
4.5.1 验证
控件
4.5.2 验证流程 4.5.3 BaseValidator类 4.5.4 RequiredFieldValidator
控件
4.5.5 RangeValidator
控件
4.5.6 CompareValidator
控件
4.5.7 RegularExpressionValidator
控件
4.5.8 CustomValidator
控件
4.5.9 ValidationSummary
控件
4.5.10 通过编程使用验证器 4.5.11 验证组 4.6 富
控件
4.6.1 AdRotator
控件
4.6.2 Calendar
控件
4.7 总结 第5章
ASP
.NET应用
程序
5.1 剖析
ASP
.NET应用
程序
5.1.1 应用
程序
域 5.1.2 应用
程序
生命周期 5.1.3 应用
程序
更新 5.1.4 应用
程序
目录结构 5.2 global.asax应用
程序
文件 5.2.1 应用
程序
事件 5.2.2 演示应用
程序
事件 5.3
ASP
.NET配置 5.3.1 machine.config文件 5.3.2 web.config文件 5.3.3 设置 5.3.4 5.3.5 5.3.6 5.3.7 通过编程读写配置节 5.3.8 网站管理工具(WAT) 5.3.9 扩展配置文件结构 5.3.10 加密配置节 5.4 .NET组件 5.4.1 创建组件 5.4.2 通过App_Code目录使用组件 5.4.3 通过Bin目录使用组件 5.5 扩展HTTP管道 5.5.1 HTTP处理
程序
5.5.2 创建自定义的HTTP处理
程序
5.5.3 配置自定义的HTTP处理
程序
5.5.4 使用无须配置的HTTP处理
程序
5.5.5 创建高级的HTTP处理
程序
5.5.6 为非
HTML
内容创建HTTP处理
程序
5.5.7 HTTP模块 5.5.8 创建自定义HTTP模块 5.6 总结 第6章 状态管理 6.1
ASP
.NET状态管理 6.2 视图状态 6.2.1 视图状态示例 6.2.2 在视图状态
中
保存对象 6.2.3 视图状态评估 6.2.4 有选择地禁用视图状态 6.2.5 视图状态安全 6.3 在页面间传送信息 6.3.1 查询字符串 6.3.2 跨页回发 6.4 cookie 6.5 会话状态 6.5.1 会话架构 6.5.2 使用会话状态 6.5.3 配置会话状态 6.5.4 会话状态安全 6.6 应用
程序
状态 6.7 总结 第二部分 数据访问 第7章 基础 7.1 ADO.NET架构 7.1.1 ADO.NET数据提供
程序
7.1.2 ADO.NET的标准化 7.1.3 基本ADO.NET类 7.2 Connection类 7.2.1 连接字符串 7.2.2 测试连接 7.2.3 连接池 7.3 Command类和DataReader类 7.3.1 Command基础 7.3.2 DataReader类 7.3.3 ExecuteReader()方法和DataReader 7.3.4 ExecuteScalar()方法 7.3.5 ExecuteNonQuery()方法 7.3.6 SQL注入攻击 7.3.7 使用参数化命令 7.3.8 调用存储过程 7.4 事务 7.4.1 事务和
ASP
.NET应用
程序
7.4.2 隔离级别 7.4.3 保存点 7.5 提供
程序
无关的代码 7.5.1 创建工厂 7.5.2 用工厂创建对象 7.5.3 使用提供
程序
无关的代码的查询 7.6 总结 第8章 数据组件和DataSet 8.1 构建数据访问组件 8.1.1 数据包 8.1.2 存储过程 8.1.3 数据应用类 8.1.4 测试数据库组件 8.2 非连接的数据 8.2.1 Web应用
程序
和DataSet 8.2.2 XML集成 8.3 DataSet类 8.4 DataAdapter类 8.4.1 填充DataSet 8.4.2 使用多个表和关系 8.4.3 查找特定行 8.4.4 在数据访问类里使用DataSet 8.4.5 数据绑定 8.5 DataView类 8.5.1 使用DataView排序 8.5.2 使用DataView过滤 8.5.3 使用关系的高级过滤 8.5.4 计算列 8.6 总结 第9章 数据绑定 9.1 基本的数据绑定 9.1.1 单值绑定 9.1.2 其他类型的表达式 9.1.3 重复值绑定 9.2 数据源
控件
9.3 SqlDataSource 9.3.1 选择记录 9.3.2 参数化命令 9.3.3 错误处理 9.3.4 更新记录 9.3.5 删除记录 9.3.6 插入记录 9.3.7 SqlDataSource的不足 9.4 ObjectDataSource 9.4.1 选择记录 9.4.2 更新记录 9.4.3 使用数据对象执行更新 9.5 数据源
控件
的限制 9.5.1 问题 9.5.2 添加其他项 9.5.3 使用SqlDataSource处理其他选项 9.5.4 使用ObjectDataSource处理其他选项 9.6 总结 第10章 富数据
控件
10.1 GridView 10.2 格式化GridView 10.2.1 格式化字段 10.2.2 样式 10.2.3 格式化特定值 10.3 GridView行选择 10.3.1 使用选择来创建主-从
表单
10.3.2 SelectedIndexChanged事件 10.3.3 将数据字段用作选择按钮 10.4 对GridView排序 10.4.1 使用SqlDataSource排序 10.4.2 使用ObjectDataSource排序 10.4.3 排序和选择 10.4.4 高级排序 10.5 GridView分页 10.5.1 自动分页 10.5.2 分页和选择 10.5.3 ObjectDataSource的自定义分页 10.5.4 定制分页栏 10.6 GridView模板 10.6.1 使用多个模板 10.6.2 在Visual Studio
中
编辑模板 10.6.3 绑定到方法 10.6.4 处理模板
中
的事件 10.6.5 使用模板编辑 10.6.6 模板
中
的客户端ID 10.7 ListView 10.7.1 分组 10.7.2 分页 10.8 DetailsView和FormView 10.8.1 DetailsView 10.8.2 FormView 10.9 高级网格 10.9.1 GridView
中
的汇总 10.9.2 单个表
中
的父/子视图 10.9.3 使用查找表编辑字段 10.9.4 处理来自数据库的图片 10.9.5 探测并发冲突 10.10 总结 第11章 缓存和异步页面 11.1 理解
ASP
.NET缓存 11.2 输出缓存 11.2.1 声明性的输出缓存 11.2.2 缓存和查询字符串 11.2.3 使用特定查询字符串参数的缓存 11.2.4 自定义缓存控制 11.2.5 使用HttpCachePolicy类进行缓存 11.2.6 缓存后替换和部分页缓存 11.2.7 缓存用户配置 11.2.8 缓存配置 11.2.9 输出缓存扩展 11.3 数据缓存 11.3.1 向缓存添加项目 11.3.2 简单的缓存测试 11.3.3 缓存优先级 11.3.4 使用数据源
控件
的缓存 11.4 缓存依赖 11.4.1 文件和缓存项目依赖 11.4.2 聚合依赖 11.4.3 移除项目回调 11.4.4 理解SQL缓存通知 11.4.5 缓存通知的工作方式 11.4.6 启用通知 11.4.7 创建缓存依赖 11.5 自定义缓存依赖 11.5.1 基本的自定义缓存依赖 11.5.2 使用消息队列的自定义缓存依赖 11.6 异步页面 11.6.1 创建异步页面 11.6.2 在异步页面
中
查询数据 11.6.3 错误处理 11.6.4 在异步任务
中
使用缓存 11.6.5 多异步任务和超时 11.7 总结 第12章 文件和流 12.1 使用文件系统 12.1.1 Directory类和
File
类 12.1.2 DirectoryInfo类和
File
Info类 12.1.3 DriveInfo类 12.1.4 使用Attributes 12.1.5 使用通配符过滤文件 12.1.6 获取文件的版本信息 12.1.7 Path类 12.1.8 文件浏览器 12.2 使用流读写文件 12.2.1 文本文件 12.2.2 二进制文件 12.2.3
上传文件
12.2.4 使文件对多用户安全 12.2.5 压缩 12.3 序列化 12.4 总结 第13章 LINQ 13.1 LINQ基础 13.1.1 延迟执行 13.1.2 LINQ是如何工作的 13.1.3 LINQ表达式 13.1.4 揭秘LINQ表达式 13.2 LINQ to DataSet 13.2.1 强类型的DataSet 13.2.2 空值 13.3 LINQ to Entities 13.3.1 生成数据模型 13.3.2 数据模型类 13.3.3 实体关系 13.3.4 查询存储过程 13.3.5 LINQ to Entities查询揭秘 13.4 数据库操作 13.4.1 插入 13.4.2 更新 13.4.3 删除 13.4.4 管理并发 13.4.5 处理并发冲突 13.5 EntityDataSource
控件
13.5.1 显示数据 13.5.2 获取关联数据 13.5.3 编辑数据 13.5.4 验证 13.6 使用QueryExtender
控件
13.6.1 使用SearchExperssion 13.6.2 使用RangeExpression 13.6.3 使用PropertyExpression 13.6.4 使用MethodExpression 13.7 总结 第14章 XML 14.1 什么时候使用XML 14.2 XML简介 14.2.1 XML的优点 14.2.2 格式良好的XML 14.2.3 XML命名空间 14.2.4 XML架构 14.3 基于流的XML处理 14.3.1 写XML文件 14.3.2 读取XML文件 14.4 内存
中
的XML处理 14.4.1 XmlDocument 14.4.2 XPathNavigator 14.4.3 XDocument 14.5 搜索XML内容 14.5.1 搜索XmlDocument 14.5.2 使用XPath搜索XmlDocument 14.5.3 使用LINQ搜索XDocument 14.6 验证XML内容 14.6.1 基本架构 14.6.2 验证XmlDocument 14.6.3 使用XDocument进行验证 14.7 转换XML内容 14.7.1 基本的样式表 14.7.2 使用XslCompiledTransform 14.7.3 使用Xml
控件
14.7.4 使用LINQ to XML转换XML 14.8 XML数据绑定 14.8.1 非层次化绑定 14.8.2 使用XPath 14.8.3 嵌套的网格 14.8.4 使用TreeView的层次化绑定 14.8.5 使用XSLT 14.8.6 绑定到来自其他源的XML内容 14.8.7 通过XmlDataSource更新XML 14.9 XML和ADO.NET数据集 14.9.1 把DataSet转换为XML 14.9.2 把DataSet作为XML访问 14.10 总结 第三部分 构建
ASP
.NET网站 第15章 用户
控件
15.1 用户
控件
基础 15.1.1 创建简单的用户
控件
15.1.2 把页面转换成用户
控件
15.2 为用户
控件
添加代码 15.2.1 处理事件 15.2.2 添加属性 15.2.3 使用自定义对象 15.2.4 添加事件 15.2.5 公开内部Web
控件
15.3 动态加载用户
控件
15.4 局部页面缓存 15.4.1 VaryByControl 15.4.2 共享缓存
控件
15.5 总结 第16章 主题和母版页 16.1 层叠样式表 16.1.1 创建样式表 16.1.2 应用样式表规则 16.2 主题 16.2.1 主题文件夹和外观 16.2.2 应用简单主题 16.2.3 处理主题冲突 16.2.4 为同一
控件
创建多个外观 16.2.5 含有模板和图片的外观 16.2.6 在主题里使用CSS 16.2.7 通过配置文件来应用主题 16.2.8 动态应用主题 16.3 标准化网站布局 16.4 母版页基础 16.4.1 简单的母版页 16.4.2 简单的内容页 16.4.3 默认内容 16.4.4 具有表格和CSS布局的母版页 16.4.5 母版页和相对
路径
16.4.6 通过配置文件应用母版页 16.5 高级母版页 16.5.1 和母版页类交互 16.5.2 动态设置母版页 16.5.3 嵌套母版页 16.6 总结 第17章 网站导航 17.1 多视图页面 17.1.1 MultiView
控件
17.1.2 Wizard
控件
17.2 站点地图 17.2.1 定义站点地图 17.2.2 绑定站点地图 17.2.3 导航
路径
17.2.4 显示站点地图的一部分 17.2.5 站点地图对象 17.2.6 加入自定义站点地图信息 17.2.7 创建自定义的SiteMapProvider 17.2.8 安全调整 17.3 URL映射和路由 17.3.1 URL映射 17.3.2 URL路由 17.4 TreeView
控件
17.4.1 TreeNode 17.4.2 按需填充节点 17.4.3 TreeView样式 17.5 Menu
控件
17.5.1 Menu样式 17.5.2 Menu模板 17.6 总结 第18章 网站部署 18.1 安装和配置IIS 18.1.1 安装IIS 7 18.1.2 管理IIS 7 18.2 部署网站 18.2.1 通过复制文件进行部署 18.2.2 使用Web部署 18.2.3 通过FTP部署 18.3 管理网站 18.3.1 创建新站点 18.3.2 创建虚拟目录 18.3.3 使用VirtualPathProvider 18.3.4 使用应用
程序
池 18.3.5 使用应用
程序
预热 18.4 扩展集成管道 18.4.1 创建处理
程序
18.4.2 部署处理
程序
18.4.3 配置处理
程序
18.4.4 测试处理
程序
18.5 总结 第四部分 安全 第19章
ASP
.NET安全模型 19.1 为何创建安全软件 19.1.1 理解潜在的威胁 19.1.2 安全编程原则 19.1.3 理解Gatekeeper 19.2 理解安全级别 19.2.1 验证 19.2.2 授权 19.2.3 机密性和完整性 19.2.4 互相协作 19.3 理解SSL 19.3.1 理解证书 19.3.2 理解SSL 19.3.3 在IIS 7.x
中
配置SSL 19.4 总结 第20章
表单
验证 20.1
表单
验证介绍 20.1.1 为什么使用
表单
验证 20.1.2 为什么不使用
表单
验证 20.1.3 为什么不自己实现cookie验证 20.1.4
表单
验证类 20.2 实现
表单
验证 20.2.1 配置
表单
验证 20.2.2 禁止匿名用户访问 20.2.3 创建自定义登录页面 20.2.4 自定义凭证存储 20.2.5
表单
验证
中
的持久化cookie 20.3 IIS 7.x和
表单
验证 20.4 总结 第21章 成员资格 21.1 介绍
ASP
.NET的成员资格API 21.2 使用成员资格API 21.2.1 配置
表单
验证 21.2.2 创建数据存储 21.2.3 配置连接字符串和成员资格提供
程序
21.2.4 创建并验证用户 21.3 使用安全
控件
21.3.1 Login
控件
21.3.2 LoginStatus
控件
21.3.3 LoginView
控件
21.3.4 PasswordRecovery
控件
21.3.5 ChangePassword
控件
21.3.6 CreateUserWizard
控件
21.4 在IIS 7.x里配置成员资格 21.4.1 配置提供
程序
和用户 21.4.2 在其他应用
程序
里使用成员资格API 21.5 使用Membership类 21.5.1 从存储
中
获得用户 21.5.2 更新存储
中
的用户 21.5.3 创建和删除用户 21.5.4 检验用户 21.6 总结 第22章 Windows验证 22.1 介绍Windows验证 22.1.1 为什么使用Windows验证 22.1.2 为什么不使用Windows验证 22.1.3 Windows验证机制 22.2 实现Windows验证 22.2.1 配置IIS 7.x 22.2.2 配置
ASP
.NET 22.2.3 IIS 7.x管道 22.2.4 禁止匿名用户访问 22.2.5 访问Windows用户信息 22.3 身份模拟 22.3.1 Windows
中
的身份模拟和委托 22.3.2 经过配置的身份模拟 22.3.3 可编程的身份模拟 22.4 总结 第23章 授权和角色 23.1 URL 授权 23.2 文件授权 23.3 在代码
中
检查授权 23.3.1 使用IsInRole()方法 23.3.2 使用PrincipalPermission类 23.4 为基于角色的授权使用角色API 23.4.1 和角色一起使用LoginView
控件
23.4.2 通过编程访问角色 23.4.3 在Windows验证
中
使用角色API 23.5 IIS 7.x里的授权和角色 23.5.1 在IIS 7.x里使用
ASP
.NET角色授权 23.5.2 在IIS 7.x
中
管理
ASP
.NET角色 23.6 总结 第24章 用户配置 24.1 理解用户配置 24.1.1 用户配置的性能 24.1.2 用户配置如何存储数据 24.1.3 用户配置和验证 24.1.4 用户配置与自定义的数据组件 24.2 使用SqlPro
file
Provider 24.2.1 创建用户配置表 24.2.2 配置提供
程序
24.2.3 定义用户配置属性 24.2.4 使用用户配置属性 24.2.5 用户配置序列化 24.2.6 用户配置组 24.2.7 用户配置和自定义的数据类型 24.2.8 用户配置API 24.2.9 匿名用户配置 24.3 自定义的用户配置提供
程序
24.3.1 自定义的用户配置提供
程序
类 24.3.2 设计FactoredPro
file
Provider 24.3.3 通过编码实现FactoredPro
file
Provider 24.3.4 测试FactoredPro
file
Provider 24.4 总结 第25章 加密 25.1 加密数据:机密性问题 25.2 .NET加密命名空间 25.3 理解.NET加密类 25.3.1 对称加密算法 25.3.2 非对称加密 25.3.3 抽象加密类 25.3.4 ICryptoTransform接口 25.3.5 CryptoStream类 25.4 加密敏感数据 25.4.1 管理秘密信息 25.4.2 使用对称算法 25.4.3 使用非对称算法 25.4.4 加密数据库
中
的敏感数据 25.5 加密查询字符串 25.5.1 包装查询字符串 25.5.2 创建一个测试页面 25.6 总结 第26章 自定义成员资格提供
程序
26.1 自定义提供
程序
的架构 26.2 创建自定义提供
程序
的基本步骤 26.2.1 自定义提供
程序
的总体设计 26.2.2 设计并实现自定义存储 26.2.3 实现提供
程序
类 26.2.4 使用自定义提供
程序
类 26.3 总结 第五部分 高级用户界面 第27章 自定义服务器
控件
27.1 自定义服务器
控件
入门 27.1.1 创建简单的自定义
控件
27.1.2 使用自定义
控件
27.1.3 工具箱
中
的自定义
控件
27.1.4 创建支持样式属性的Web
控件
27.1.5 呈现过程 27.2 处理不同的浏览器 27.2.1
Html
TextWriter 27.2.2 浏览器检测 27.2.3 浏览器属性 27.2.4 覆盖浏览器类型侦测 27.2.5 自适应呈现 27.3
控件
状态和事件 27.3.1 视图状态 27.3.2
控件
状态 27.3.3 回传数据和change事件 27.3.4 触发回传 27.4 扩展现有的Web
控件
27.4.1 组合
控件
27.4.2 派生
控件
27.5 总结 第28章 图形、GDI+和图表 28.1 ImageMap
控件
28.1.1 创建热点 28.1.2 处理热点单击 28.1.3 自定义热点 28.2 使用GDI+画图 28.2.1 简单绘制 28.2.2 图像格式和质量 28.2.3 Graphics类 28.2.4 使用GraphicsPath 28.2.5 画笔 28.2.6 画刷 28.3 在网页上嵌入动态图形 28.3.1 使用PNG格式 28.3.2 传递信息给动态图像 28.3.3 使用GDI+的自定义
控件
28.4 使用Chart
控件
28.4.1 创建基本的图表 28.4.2 用数据填充图表 28.5 总结 第29章 JavaScript和Ajax技术 29.1 JavaScript本质 29.1.1
HTML
DOM 29.1.2 客户端事件 29.1.3 脚本块 29.1.4 操纵
HTML
元素 29.1.5 调试JavaScript 29.2 基本的JavaScript示例 29.2.1 创建JavaScript页面处理器 29.2.2 使用JavaScript异步下载图片 29.2.3 呈现脚本块 29.3 脚本注入攻击 29.3.1 请求验证 29.3.2 禁用请求验证 29.3.3 扩展请求验证 29.4 带有JavaScript的自定义
控件
29.4.1 弹出窗口 29.4.2 滚动按钮 29.5 框架 29.5.1 框架导航 29.5.2 内联框架 29.6 理解Ajax 29.6.1 XMLHttpRequest对象 29.6.2 Ajax示例 29.7 在客户端回调
中
使用Ajax 29.7.1 创建客户端回调 29.7.2 深入了解客户端回调 29.7.3 自定义
控件
里的客户端回调 29.8 总结 第30章
ASP
.NETAJAX 30.1 介绍
ASP
.NETAJAX 30.1.1 客户端的
ASP
.NETAJAX:脚本库 30.1.2 服务器端的
ASP
.NETAJAX:ScriptManager 30.2 服务器回调 30.2.1
ASP
.NETAJAX
中
的Web服务 30.2.2 在页面里放置Web方法 30.2.3
ASP
.NETAJAX应用
程序
服务 30.3
ASP
.NETAJAX服务器
控件
30.3.1 使用UpdatePanel的局部呈现 30.3.2 使用Timer的定时刷新 30.3.3 使用UpdateProgress的耗时更新 30.3.4 管理浏览器历史 30.4 深入客户端库 30.4.1 理解客户端模型 30.4.2 JavaScript的面向对象编程 30.4.3 网页框架 30.5
控件
扩展器 30.5.1 安装
ASP
.NETAJAX
控件
工具包 30.5.2 AutoCompleteExtender 30.5.3
ASP
.NETAJAX
控件
工具包 30.6 总结 第31章 使用Web部件页面的门户网站 31.1 典型门户页面 31.2 基本Web部件页面 31.2.1 创建页面设计 31.2.2 WebPartManager和WebPartZone 31.2.3 向页面添加Web部件 31.2.4 定制页面 31.3 创建Web部件 31.3.1 简单的Web部件任务 31.3.2 开发高级Web部件 31.3.3 Web部件编辑器 31.3.4 连接Web部件 31.3.5 自定义动词和Web部件 31.3.6 用户
控件
和高级Web部件 31.3.7 动态上传Web部件 31.3.8 对Web部件的授权 31.3.9 个性化的最后任务 31.4 总结 第32章 MVC 32.1 MVC和Web
表单
的选择 32.2 创建基本的MVC应用
程序
32.2.1 创建模型 32.2.2 创建控制器 32.2.3 创建Index视图 32.2.4 测试(未完成的)应用
程序
32.2.5 完成控制器和视图 32.2.6 修改Site.Master文件 32.3 扩展基础的MVC应用
程序
32.3.1 配置路由 32.3.2 增加错误处理 32.3.3 增加验证 32.3.4 增强数据存储访问 32.3.5 增加对外键约束的支持 32.4 自定义视图 32.4.1 修改视图 32.4.2 增加视图数据 32.5 强化模型 32.6 验证数据 32.6.1 执行基本的验证 32.6.2 增加验证标注 32.7 使用动作结果 32.7.1 返回JSON数据 32.7.2 调用其他控制器方法 32.8 总结 第33章 动态数据 33.1 创建动态数据应用
程序
33.1.1 创建动态数据网站 33.1.2 检验动态数据网站 33.2 深入理解动态数据项目 33.3 自定义动态数据网站 33.3.1 使用模板进行自定义 33.3.2 使用路由进行自定义 33.3.3 使用元数据进行自定义 33.3.4 自定义验证 33.4 总结 第34章 Silverlight 34.1 理解Silverlight 34.1.1 Silverlight与Flash对比 34.1.2 Silverlight系统需求 34.2 创建Silverlight解决方案 34.2. 1 Silverlight编译 34.2.2 入口页面 34.3 创建Silverlight项目 34.3.1 设计Silverlight页面 34.3.2 理解XAML 34.3.3 设置属性 34.3.4 XAML 代码隐藏 34.3.5 处理事件 34.3.6 了解Silverlight类库 34.4 布局 34.4.1 Canvas 34.4.2 网格 34.5 动画 34.5.1 动画基础知识 34.5.2 定义动画 34.5.3 StoryBoard类 34.5.4 交互式动画实例 34.5.5 变换 34.6 Silverlight使用Web服务 34.6.1 创建Web服务 34.6.2 添加Web引用 34.6.3 调用Web服务 34.6.4 配置Web服务URL 34.6.5 跨域Web服务调用 34.7 总结
ASP
.NET4高级
程序
设计(第4版) 3/3
内容简介 《
ASP
.NET 4高级
程序
设计(第4版)》是
ASP
.NET领域的鸿篇巨制,全面讲解了
ASP
.NET4的各种特性及其背后的工作原理,并给出了许多针对如何构建复杂、可扩展的网站从实践
中
得出的建议。书
中
还深入讲述了其他
ASP
.NET图书遗漏的高级主题,如自定义
控件
的创建、图像处理、加密等。此外,《
ASP
.NET 4高级
程序
设计(第4版)》专门提供了两章的内容来教你如何用Ajax 技术制作快速响应的页面,以及如何使用微软的
ASP
.NETAJAX平台。另外,还专门介绍了
ASP
.NET4 新增的功能,如MVC 和动态数据等。 《
ASP
.NET 4高级
程序
设计(第4版)》适合各层次的
ASP
.NET
程序
员阅读。 作者简介 作者:(美)麦克唐纳 目录 第一部分 核心概念 第1章
ASP
.NET简介 2 1.1
ASP
.NET的7大要点 2 1.1.1 要点1:
ASP
.NET是同.NETFramework集成在一起的 2 1.1.2 要点2:
ASP
.NET是编译执行的,而不是解释执行的 3 1.1.3 要点3:
ASP
.NET支持多语言 4 1.1.4 要点4:
ASP
.NET运行在公共语言运行库内 6 1.1.5 要点5:
ASP
.NET是面向对象的 7 1.1.6 要点6:
ASP
.NET支持所有的浏览器 8 1.1.7 要点7:
ASP
.NET易于部署和配置 8 1.2
ASP
.NET的演变 9 1.2.1
ASP
.NET1.0和
ASP
.NET1.1 9 1.2.2
ASP
.NET2.0 9 1.2.3
ASP
.NET3.5 10 1.2.4
ASP
.NET4 12 1.2.5 Silverlight 14 1.3 总结 15 第2章 Visual Studio 16 2.1 Visual Studio 16 2.1.1 网站和Web项目 17 2.1.2 创建无项目文件的网站 18 2.1.3 设计网页 21 2.2 Visual StudioIDE 26 2.2.1 解决方案资源管理器 28 2.2.2 文档窗口 29 2.2.3 工具箱 29 2.2.4 错误列表和任务列表 30 2.2.5 服务器资源管理器 31 2.3 代码编辑器 32 2.3.1 添加
程序
集引用 33 2.3.2 智能感知和大纲显示 35 2.3.3 Visual Studio 2010改进 37 2.4 编码模型 42 2.4.1 代码隐藏文件如何与页面连接 44 2.4.2
控件
标签如何与页面变量连接 44 2.4.3 事件如何与事件处理
程序
连接 46 2.5 Web项目 47 2.5.1 基于项目的开发 47 2.5.2 创建Web项目 48 2.5.3 迁移旧版Visual Studio创建的网站 49 2.6 Visual Studio调试 51 2.6.1 单步调试 52 2.6.2 变量监视 54 2.6.3 高级断点 55 2.7 WebDevelopment Helper 56 2.8 总结 57 第3章 Web窗体 58 3.1 页面处理 58 3.1.1
HTML
表单
59 3.1.2 动态用户界面 60 3.1.3
ASP
.NET事件模型 61 3.1.4 自动回送 62 3.1.5 视图状态 63 3.1.6 X
HTML
兼容性 66 3.1.7 客户端
控件
ID 71 3.2 Web窗体处理阶段 73 3.2.1 页面框架初始化 74 3.2.2 用户代码初始化 74 3.2.3 验证 74 3.2.4 事件处理 75 3.2.5 自动数据绑定 75 3.2.6 清除 76 3.2.7 页面流示例 76 3.3 作为
控件
容器的页面 78 3.3.1 显示
控件
树 78 3.3.2 页头 82 3.3.3 动态
控件
的创建 82 3.4 Page类 84 3.4.1 Session、Application和Cache 84 3.4.2 Request 85 3.4.3 Response 86 3.4.4 Server 88 3.4.5 User 90 3.4.6 Trace 91 3.4.7 访问其他类
中
的HTTP上下文 96 3.5 总结 96 第4章 服务器
控件
97 4.1 服务器
控件
的类型 97 4.2
HTML
服务器
控件
99 4.2.1
Html
Control类 100 4.2.2
Html
ContainerControl类 100 4.2.3
Html
InputControl类 100 4.2.4
HTML
服务器
控件
类 101 4.2.5 设置Style特性和其他属性 102 4.2.6 通过编程创建服务器
控件
103 4.2.7 处理服务器端事件 104 4.3 Web
控件
107 4.3.1 WebControl基类 107 4.3.2 基本的Web
控件
类 108 4.3.3 单位 109 4.3.4 枚举 110 4.3.5 颜色 110 4.3.6 字体 111 4.3.7 焦点 12 4.3.8 默认按钮 113 4.3.9 可滚动面板 114 4.3.10 处理Web
控件
事件 114 4.4 List
控件
116 4.4.1 Selectable列表
控件
117 4.4.2 BulletedList
控件
120 4.5 输入验证
控件
121 4.5.1 验证
控件
121 4.5.2 验证流程 122 4.5.3 BaseValidator类 122 4.5.4 RequiredFieldValidator
控件
124 4.5.5 RangeValidator
控件
124 4.5.6 CompareValidator
控件
125 4.5.7 RegularExpressionValidator
控件
125 4.5.8 CustomValidator
控件
127 4.5.9 ValidationSummary
控件
128 4.5.10 通过编程使用验证器 129 4.5.11 验证组 130 4.6 富
控件
132 4.6.1 AdRotator
控件
132 4.6.2 Calendar
控件
134 4.7 总结 136 第5章
ASP
.NET应用
程序
137 5.1 剖析
ASP
.NET应用
程序
137 5.1.1 应用
程序
域 137 5.1.2 应用
程序
生命周期 138 5.1.3 应用
程序
更新 139 5.1.4 应用
程序
目录结构 139 5.2 global.asax应用
程序
文件 140 5.2.1 应用
程序
事件 141 5.2.2 演示应用
程序
事件 143 5.3
ASP
.NET配置 144 5.3.1 machine.config文件 144 5.3.2 web.config文件 147 5.3.3 设置 150 5.3.4 150 5.3.5 150 5.3.6 152 5.3.7 通过编程读写配置节 152 5.3.8 网站管理工具(WAT) 155 5.3.9 扩展配置文件结构 156 5.3.10 加密配置节 159 5.4 .NET组件 161 5.4.1 创建组件 161 5.4.2 通过App_Code目录使用组件 162 5.4.3 通过Bin目录使用组件 163 5.5 扩展HTTP管道 165 5.5.1 HTTP处理
程序
165 5.5.2 创建自定义的HTTP处理
程序
167 5.5.3 配置自定义的HTTP处理
程序
168 5.5.4 使用无须配置的HTTP处理
程序
169 5.5.5 创建高级的HTTP处理
程序
169 5.5.6 为非
HTML
内容创建HTTP处理
程序
171 5.5.7 HTTP模块 173 5.5.8 创建自定义HTTP模块 174 5.6 总结 176 第6章 状态管理 177 6.1
ASP
.NET状态管理 177 6.2 视图状态 179 6.2.1 视图状态示例 180 6.2.2 在视图状态
中
保存对象 181 6.2.3 视图状态评估 183 6.2.4 有选择地禁用视图状态 184 6.2.5 视图状态安全 185 6.3 在页面间传送信息 186 6.3.1 查询字符串 187 6.3.2 跨页回发 188 6.4 cookie 193 6.5 会话状态 194 6.5.1 会话架构 194 6.5.2 使用会话状态 196 6.5.3 配置会话状态 197 6.5.4 会话状态安全 202 6.6 应用
程序
状态 203 6.7 总结 206 第二部分 数据访问 第7章 基础 208 7.1 ADO.NET架构 209 7.1.1 ADO.NET数据提供
程序
209 7.1.2 ADO.NET的标准化 210 7.1.3 基本ADO.NET类 211 7.2 Connection类 212 7.2.1 连接字符串 212 7.2.2 测试连接 214 7.2.3 连接池 215 7.3 Command类和DataReader类 217 7.3.1 Command基础 217 7.3.2 DataReader类 218 7.3.3 ExecuteReader()方法和DataReader 218 7.3.4 ExecuteScalar()方法 223 7.3.5 ExecuteNonQuery()方法 223 7.3.6 SQL注入攻击 224 7.3.7 使用参数化命令 226 7.3.8 调用存储过程 227 7.4 事务 229 7.4.1 事务和
ASP
.NET应用
程序
230 7.4.2 隔离级别 234 7.4.3 保存点 235 7.5 提供
程序
无关的代码 235 7.5.1 创建工厂 236 7.5.2 用工厂创建对象 237 7.5.3 使用提供
程序
无关的代码的查询 237 7.6 总结 239 第8章 数据组件和DataSet 240 8.1 构建数据访问组件 240 8.1.1 数据包 241 8.1.2 存储过程 242 8.1.3 数据应用类 243 8.1.4 测试数据库组件 248 8.2 非连接的数据 249 8.2.1 Web应用
程序
和DataSet 250 8.2.2 XML集成 251 8.3 DataSet类 251 8.4 DataAdapter类 252 8.4.1 填充DataSet 253 8.4.2 使用多个表和关系 254 8.4.3 查找特定行 257 8.4.4 在数据访问类里使用DataSet 257 8.4.5 数据绑定 258 8.5 DataView类 259 8.5.1 使用DataView排序 259 8.5.2 使用DataView过滤 261 8.5.3 使用关系的高级过滤 262 8.5.4 计算列 263 8.6 总结 264 第9章 数据绑定 265 9.1 基本的数据绑定 265 9.1.1 单值绑定 266 9.1.2 其他类型的表达式 268 9.1.3 重复值绑定 271 9.2 数据源
控件
277 9.3 SqlDataSource 278 9.3.1 选择记录 279 9.3.2 参数化命令 281 9.3.3 错误处理 285 9.3.4 更新记录 286 9.3.5 删除记录 289 9.3.6 插入记录 289 9.3.7 SqlDataSource的不足 290 9.4 ObjectDataSource 291 9.4.1 选择记录 291 9.4.2 更新记录 295 9.4.3 使用数据对象执行更新 296 9.5 数据源
控件
的限制 299 9.5.1 问题 299 9.5.2 添加其他项 300 9.5.3 使用SqlDataSource处理其他选项 301 9.5.4 使用ObjectDataSource处理其他选项 301 9.6 总结 302 第10章 富数据
控件
303 10.1 GridView 303 10.2 格式化GridView 307 10.2.1 格式化字段 307 10.2.2 样式 308 10.2.3 格式化特定值 311 10.3 GridView行选择 313 10.3.1 使用选择来创建主-从
表单
314 10.3.2 SelectedIndexChanged事件 315 10.3.3 将数据字段用作选择按钮 315 10.4 对GridView排序 316 10.4.1 使用SqlDataSource排序 317 10.4.2 使用ObjectDataSource排序 318 10.4.3 排序和选择 319 10.4.4 高级排序 319 10.5 GridView分页 320 10.5.1 自动分页 320 10.5.2 分页和选择 322 10.5.3 ObjectDataSource的自定义分页 322 10.5.4 定制分页栏 324 10.6 GridView模板 325 10.6.1 使用多个模板 327 10.6.2 在Visual Studio
中
编辑模板 328 10.6.3 绑定到方法 328 10.6.4 处理模板
中
的事件 330 10.6.5 使用模板编辑 330 10.6.6 模板
中
的客户端ID 335 10.7 ListView 336 10.7.1 分组 338 10.7.2 分页 340 10.8 DetailsView和FormView 341 10.8.1 DetailsView 341 10.8.2 FormView 344 10.9 高级网格 345 10.9.1 GridView
中
的汇总 345 10.9.2 单个表
中
的父/子视图 347 10.9.3 使用查找表编辑字段 349 10.9.4 处理来自数据库的图片 351 10.9.5 探测并发冲突 355 10.10 总结 359 第11章 缓存和异步页面 360 11.1 理解
ASP
.NET缓存 360 11.2 输出缓存 361 11.2.1 声明性的输出缓存 361 11.2.2 缓存和查询字符串 362 11.2.3 使用特定查询字符串参数的缓存 363 11.2.4 自定义缓存控制 364 11.2.5 使用HttpCachePolicy类进行缓存 365 11.2.6 缓存后替换和部分页缓存 365 11.2.7 缓存用户配置 367 11.2.8 缓存配置 368 11.2.9 输出缓存扩展 369 11.3 数据缓存 373 11.3.1 向缓存添加项目 373 11.3.2 简单的缓存测试 375 11.3.3 缓存优先级 376 11.3.4 使用数据源
控件
的缓存 376 11.4 缓存依赖 379 11.4.1 文件和缓存项目依赖 379 11.4.2 聚合依赖 380 11.4.3 移除项目回调 381 11.4.4 理解SQL缓存通知 383 11.4.5 缓存通知的工作方式 384 11.4.6 启用通知 384 11.4.7 创建缓存依赖 385 11.5 自定义缓存依赖 386 11.5.1 基本的自定义缓存依赖 386 11.5.2 使用消息队列的自定义缓存依赖 387 11.6 异步页面 389 11.6.1 创建异步页面 390 11.6.2 在异步页面
中
查询数据 392 11.6.3 错误处理 393 11.6.4 在异步任务
中
使用缓存 395 11.6.5 多异步任务和超时 397 11.7 总结 399 第12章 文件和流 400 12.1 使用文件系统 400 12.1.1 Directory类和
File
类 400 12.1.2 DirectoryInfo类和
File
Info类 402 12.1.3 DriveInfo类 404 12.1.4 使用Attributes 405 12.1.5 使用通配符过滤文件 407 12.1.6 获取文件的版本信息 407 12.1.7 Path类 408 12.1.8 文件浏览器 410 12.2 使用流读写文件 414 12.2.1 文本文件 415 12.2.2 二进制文件 416 12.2.3
上传文件
417 12.2.4 使文件对多用户安全 419 12.2.5 压缩 423 12.3 序列化 423 12.4 总结 426 第13章 LINQ 427 13.1 LINQ基础 427 13.1.1 延迟执行 429 13.1.2 LINQ是如何工作的 429 13.1.3 LINQ表达式 430 13.1.4 揭秘LINQ表达式 436 13.2 LINQ to DataSet 439 13.2.1 强类型的DataSet 441 13.2.2 空值 441 13.3 LINQ to Entities 441 13.3.1 生成数据模型 442 13.3.2 数据模型类 442 13.3.3 实体关系 444 13.3.4 查询存储过程 446 13.3.5 LINQ to Entities查询揭秘 447 13.4 数据库操作 452 13.4.1 插入 452 13.4.2 更新 454 13.4.3 删除 454 13.4.4 管理并发 455 13.4.5 处理并发冲突 455 13.5 EntityDataSource
控件
459 13.5.1 显示数据 459 13.5.2 获取关联数据 463 13.5.3 编辑数据 464 13.5.4 验证 464 13.6 使用QueryExtender
控件
465 13.6.1 使用SearchExperssion 466 13.6.2 使用RangeExpression 467 13.6.3 使用PropertyExpression 467 13.6.4 使用MethodExpression 468 13.7 总结 468 第14章 XML 470 14.1 什么时候使用XML 470 14.2 XML简介 471 14.2.1 XML的优点 472 14.2.2 格式良好的XML 472 14.2.3 XML命名空间 473 14.2.4 XML架构 474 14.3 基于流的XML处理 475 14.3.1 写XML文件 476 14.3.2 读取XML文件 478 14.4 内存
中
的XML处理 481 14.4.1 XmlDocument 482 14.4.2 XPathNavigator 485 14.4.3 XDocument 486 14.5 搜索XML内容 491 14.5.1 搜索XmlDocument 491 14.5.2 使用XPath搜索XmlDocument 493 14.5.3 使用LINQ搜索XDocument 494 14.6 验证XML内容 496 14.6.1 基本架构 496 14.6.2 验证XmlDocument 497 14.6.3 使用XDocument进行验证 498 14.7 转换XML内容 499 14.7.1 基本的样式表 499 14.7.2 使用XslCompiledTransform 500 14.7.3 使用Xml
控件
501 14.7.4 使用LINQ to XML转换XML 502 14.8 XML数据绑定 504 14.8.1 非层次化绑定 504 14.8.2 使用XPath 506 14.8.3 嵌套的网格 508 14.8.4 使用TreeView的层次化绑定 509 14.8.5 使用XSLT 511 14.8.6 绑定到来自其他源的XML内容 512 14.8.7 通过XmlDataSource更新XML 513 14.9 XML和ADO.NET数据集 513 14.9.1 把DataSet转换为XML 514 14.9.2 把DataSet作为XML访问 515 14.10 总结 517 第三部分 构建
ASP
.NET网站 第15章 用户
控件
520 15.1 用户
控件
基础 520 15.1.1 创建简单的用户
控件
521 15.1.2 把页面转换成用户
控件
522 15.2 为用户
控件
添加代码 523 15.2.1 处理事件 523 15.2.2 添加属性 524 15.2.3 使用自定义对象 525 15.2.4 添加事件 528 15.2.5 公开内部Web
控件
530 15.3 动态加载用户
控件
531 15.4 局部页面缓存 534 15.4.1 VaryByControl 535 15.4.2 共享缓存
控件
536 15.5 总结 537 第16章 主题和母版页 538 16.1 层叠样式表 538 16.1.1 创建样式表 538 16.1.2 应用样式表规则 540 16.2 主题 542 16.2.1 主题文件夹和外观 543 16.2.2 应用简单主题 544 16.2.3 处理主题冲突 545 16.2.4 为同一
控件
创建多个外观 546 16.2.5 含有模板和图片的外观 547 16.2.6 在主题里使用CSS 549 16.2.7 通过配置文件来应用主题 549 16.2.8 动态应用主题 550 16.3 标准化网站布局 551 16.4 母版页基础 552 16.4.1 简单的母版页 552 16.4.2 简单的内容页 554 16.4.3 默认内容 556 16.4.4 具有表格和CSS布局的母版页 556 16.4.5 母版页和相对
路径
559 16.4.6 通过配置文件应用母版页 559 16.5 高级母版页 560 16.5.1 和母版页类交互 560 16.5.2 动态设置母版页 561 16.5.3 嵌套母版页 561 16.6 总结 563 第17章 网站导航 564 17.1 多视图页面 564 17.1.1 MultiView
控件
565 17.1.2 Wizard
控件
568 17.2 站点地图 575 17.2.1 定义站点地图 576 17.2.2 绑定站点地图 577 17.2.3 导航
路径
578 17.2.4 显示站点地图的一部分 580 17.2.5 站点地图对象 583 17.2.6 加入自定义站点地图信息 584 17.2.7 创建自定义的SiteMapProvider 584 17.2.8 安全调整 590 17.3 URL映射和路由 592 17.3.1 URL映射 592 17.3.2 URL路由 593 17.4 TreeView
控件
594 17.4.1 TreeNode 595 17.4.2 按需填充节点 597 17.4.3 TreeView样式 598 17.5 Menu
控件
601 17.5.1 Menu样式 603 17.5.2 Menu模板 605 17.6 总结 606 第18章 网站部署 607 18.1 安装和配置IIS 607 18.1.1 安装IIS 7 607 18.1.2 管理IIS 7 608 18.2 部署网站 610 18.2.1 通过复制文件进行部署 611 18.2.2 使用Web部署 614 18.2.3 通过FTP部署 621 18.3 管理网站 626 18.3.1 创建新站点 626 18.3.2 创建虚拟目录 627 18.3.3 使用VirtualPathProvider 628 18.3.4 使用应用
程序
池 631 18.3.5 使用应用
程序
预热 633 18.4 扩展集成管道 634 18.4.1 创建处理
程序
634 18.4.2 部署处理
程序
635 18.4.3 配置处理
程序
635 18.4.4 测试处理
程序
636 18.5 总结 636 第四部分 安全 第19章
ASP
.NET安全模型 638 19.1 为何创建安全软件 638 19.1.1 理解潜在的威胁 638 19.1.2 安全编程原则 639 19.1.3 理解Gatekeeper 640 19.2 理解安全级别 641 19.2.1 验证 641 19.2.2 授权 642 19.2.3 机密性和完整性 643 19.2.4 互相协作 643 19.3 理解SSL 644 19.3.1 理解证书 645 19.3.2 理解SSL 645 19.3.3 在IIS 7.x
中
配置SSL 646 19.4 总结 649 第20章
表单
验证 650 20.1
表单
验证介绍 650 20.1.1 为什么使用
表单
验证 650 20.1.2 为什么不使用
表单
验证 652 20.1.3 为什么不自己实现cookie验证 653 20.1.4
表单
验证类 654 20.2 实现
表单
验证 655 20.2.1 配置
表单
验证 655 20.2.2 禁止匿名用户访问 657 20.2.3 创建自定义登录页面 658 20.2.4 自定义凭证存储 662 20.2.5
表单
验证
中
的持久化cookie 663 20.3 IIS 7.x和
表单
验证 665 20.4 总结 669 第21章 成员资格 670 21.1 介绍
ASP
.NET的成员资格API 670 21.2 使用成员资格API 672 21.2.1 配置
表单
验证 673 21.2.2 创建数据存储 674 21.2.3 配置连接字符串和成员资格提供
程序
679 21.2.4 创建并验证用户 681 21.3 使用安全
控件
683 21.3.1 Login
控件
684 21.3.2 LoginStatus
控件
693 21.3.3 LoginView
控件
693 21.3.4 PasswordRecovery
控件
694 21.3.5 ChangePassword
控件
697 21.3.6 CreateUserWizard
控件
698 21.4 在IIS 7.x里配置成员资格 702 21.4.1 配置提供
程序
和用户 702 21.4.2 在其他应用
程序
里使用成员资格API 703 21.5 使用Membership类 705 21.5.1 从存储
中
获得用户 706 21.5.2 更新存储
中
的用户 708 21.5.3 创建和删除用户 708 21.5.4 检验用户 709 21.6 总结 709 第22章 Windows验证 710 22.1 介绍Windows验证 710 22.1.1 为什么使用Windows验证 710 22.1.2 为什么不使用Windows验证 711 22.1.3 Windows验证机制 712 22.2 实现Windows验证 717 22.2.1 配置IIS 7.x 717 22.2.2 配置
ASP
.NET 718 22.2.3 IIS 7.x管道 719 22.2.4 禁止匿名用户访问 722 22.2.5 访问Windows用户信息 723 22.3 身份模拟 727 22.3.1 Windows
中
的身份模拟和委托 728 22.3.2 经过配置的身份模拟 729 22.3.3 可编程的身份模拟 729 22.4 总结 732 第23章 授权和角色 733 23.1 URL 授权 733 23.2 文件授权 738 23.3 在代码
中
检查授权 739 23.3.1 使用IsInRole()方法 739 23.3.2 使用PrincipalPermission类 740 23.4 为基于角色的授权使用角色API 742 23.4.1 和角色一起使用LoginView
控件
747 23.4.2 通过编程访问角色 748 23.4.3 在Windows验证
中
使用角色API 750 23.5 IIS 7.x里的授权和角色 752 23.5.1 在IIS 7.x里使用
ASP
.NET角色授权 754 23.5.2 在IIS 7.x
中
管理
ASP
.NET角色 756 23.6 总结 757 第24章 用户配置 758 24.1 理解用户配置 758 24.1.1 用户配置的性能 758 24.1.2 用户配置如何存储数据 759 24.1.3 用户配置和验证 760 24.1.4 用户配置与自定义的数据组件 760 24.2 使用SqlPro
file
Provider 761 24.2.1 创建用户配置表 761 24.2.2 配置提供
程序
763 24.2.3 定义用户配置属性 764 24.2.4 使用用户配置属性 764 24.2.5 用户配置序列化 766 24.2.6 用户配置组 767 24.2.7 用户配置和自定义的数据类型 768 24.2.8 用户配置API 771 24.2.9 匿名用户配置 773 24.3 自定义的用户配置提供
程序
775 24.3.1 自定义的用户配置提供
程序
类 775 24.3.2 设计FactoredPro
file
Provider 777 24.3.3 通过编码实现FactoredPro
file
Provider 778 24.3.4 测试FactoredPro
file
Provider 781 24.4 总结 784 第25章 加密 785 25.1 加密数据:机密性问题 785 25.2 .NET加密命名空间 786 25.3 理解.NET加密类 789 25.3.1 对称加密算法 790 25.3.2 非对称加密 791 25.3.3 抽象加密类 791 25.3.4 ICryptoTransform接口 792 25.3.5 CryptoStream类 793 25.4 加密敏感数据 793 25.4.1 管理秘密信息 794 25.4.2 使用对称算法 795 25.4.3 使用非对称算法 799 25.4.4 加密数据库
中
的敏感数据 801 25.5 加密查询字符串 806 25.5.1 包装查询字符串 806 25.5.2 创建一个测试页面 808 25.6 总结 810 第26章 自定义成员资格提供
程序
811 26.1 自定义提供
程序
的架构 811 26.2 创建自定义提供
程序
的基本步骤 812 26.2.1 自定义提供
程序
的总体设计 813 26.2.2 设计并实现自定义存储 813 26.2.3 实现提供
程序
类 820 26.2.4 使用自定义提供
程序
类 837 26.3 总结 840 第五部分 高级用户界面 第27章 自定义服务器
控件
842 27.1 自定义服务器
控件
入门 842 27.1.1 创建简单的自定义
控件
842 27.1.2 使用自定义
控件
844 27.1.3 工具箱
中
的自定义
控件
845 27.1.4 创建支持样式属性的Web
控件
847 27.1.5 呈现过程 850 27.2 处理不同的浏览器 852 27.2.1
Html
TextWriter 852 27.2.2 浏览器检测 852 27.2.3 浏览器属性 853 27.2.4 覆盖浏览器类型侦测 854 27.2.5 自适应呈现 855 27.3
控件
状态和事件 856 27.3.1 视图状态 856 27.3.2
控件
状态 858 27.3.3 回传数据和change事件 860 27.3.4 触发回传 862 27.4 扩展现有的Web
控件
863 27.4.1 组合
控件
864 27.4.2 派生
控件
866 27.5 总结 869 第28章 图形、GDI+和图表 870 28.1 ImageMap
控件
870 28.1.1 创建热点 871 28.1.2 处理热点单击 872 28.1.3 自定义热点 873 28.2 使用GDI+画图 875 28.2.1 简单绘制 875 28.2.2 图像格式和质量 877 28.2.3 Graphics类 878 28.2.4 使用GraphicsPath 880 28.2.5 画笔 881 28.2.6 画刷 883 28.3 在网页上嵌入动态图形 885 28.3.1 使用PNG格式 885 28.3.2 传递信息给动态图像 886 28.3.3 使用GDI+的自定义
控件
888 28.4 使用Chart
控件
892 28.4.1 创建基本的图表 892 28.4.2 用数据填充图表 897 28.5 总结 904 第29章 JavaScript和Ajax技术 905 29.1 JavaScript本质 905 29.1.1
HTML
DOM 906 29.1.2 客户端事件 906 29.1.3 脚本块 908 29.1.4 操纵
HTML
元素 910 29.1.5 调试JavaScript 910 29.2 基本的JavaScript示例 912 29.2.1 创建JavaScript页面处理器 912 29.2.2 使用JavaScript异步下载图片 915 29.2.3 呈现脚本块 919 29.3 脚本注入攻击 920 29.3.1 请求验证 921 29.3.2 禁用请求验证 922 29.3.3 扩展请求验证 923 29.4 带有JavaScript的自定义
控件
925 29.4.1 弹出窗口 925 29.4.2 滚动按钮 928 29.5 框架 931 29.5.1 框架导航 932 29.5.2 内联框架 933 29.6 理解Ajax 934 29.6.1 XMLHttpRequest对象 935 29.6.2 Ajax示例 936 29.7 在客户端回调
中
使用Ajax 939 29.7.1 创建客户端回调 940 29.7.2 深入了解客户端回调 945 29.7.3 自定义
控件
里的客户端回调 946 29.8 总结 949 第30章
ASP
.NETAJAX 950 30.1 介绍
ASP
.NETAJAX 950 30.1.1 客户端的
ASP
.NETAJAX:脚本库 951 30.1.2 服务器端的
ASP
.NETAJAX:ScriptManager 952 30.2 服务器回调 952 30.2.1
ASP
.NETAJAX
中
的Web服务 953 30.2.2 在页面里放置Web方法 959 30.2.3
ASP
.NETAJAX应用
程序
服务 960 30.3
ASP
.NETAJAX服务器
控件
966 30.3.1 使用UpdatePanel的局部呈现 966 30.3.2 使用Timer的定时刷新 973 30.3.3 使用UpdateProgress的耗时更新 974 30.3.4 管理浏览器历史 976 30.4 深入客户端库 979 30.4.1 理解客户端模型 980 30.4.2 JavaScript的面向对象编程 981 30.4.3 网页框架 987 30.5
控件
扩展器 991 30.5.1 安装
ASP
.NETAJAX
控件
工具包 992 30.5.2 AutoCompleteExtender 993 30.5.3
ASP
.NETAJAX
控件
工具包 996 30.6 总结 999 第31章 使用Web部件页面的门户网站 1000 31.1 典型门户页面 1000 31.2 基本Web部件页面 1002 31.2.1 创建页面设计 1002 31.2.2 WebPartManager和WebPartZone 1003 31.2.3 向页面添加Web部件 1004 31.2.4 定制页面 1008 31.3 创建Web部件 1010 31.3.1 简单的Web部件任务 1010 31.3.2 开发高级Web部件 1017 31.3.3 Web部件编辑器 1024 31.3.4 连接Web部件 1029 31.3.5 自定义动词和Web部件 1036 31.3.6 用户
控件
和高级Web部件 1037 31.3.7 动态上传Web部件 1040 31.3.8 对Web部件的授权 1044 31.3.9 个性化的最后任务 1045 31.4 总结 1046 第32章 MVC 1047 32.1 MVC和Web
表单
的选择 1047 32.2 创建基本的MVC应用
程序
1047 32.2.1 创建模型 1048 32.2.2 创建控制器 1049 32.2.3 创建Index视图 1050 32.2.4 测试(未完成的)应用
程序
1050 32.2.5 完成控制器和视图 1051 32.2.6 修改Site.Master文件 1053 32.3 扩展基础的MVC应用
程序
1053 32.3.1 配置路由 1054 32.3.2 增加错误处理 1055 32.3.3 增加验证 1056 32.3.4 增强数据存储访问 1057 32.3.5 增加对外键约束的支持 1059 32.4 自定义视图 1059 32.4.1 修改视图 1060 32.4.2 增加视图数据 1062 32.5 强化模型 1063 32.6 验证数据 1066 32.6.1 执行基本的验证 1067 32.6.2 增加验证标注 1068 32.7 使用动作结果 1071 32.7.1 返回JSON数据 1072 32.7.2 调用其他控制器方法 1072 32.8 总结 1074 第33章 动态数据 1075 33.1 创建动态数据应用
程序
1075 33.1.1 创建动态数据网站 1075 33.1.2 检验动态数据网站 1077 33.2 深入理解动态数据项目 1080 33.3 自定义动态数据网站 1080 33.3.1 使用模板进行自定义 1081 33.3.2 使用路由进行自定义 1087 33.3.3 使用元数据进行自定义 1094 33.3.4 自定义验证 1099 33.4 总结 1103 第34章 Silverlight 1104 34.1 理解Silverlight 1105 34.1.1 Silverlight与Flash对比 1106 34.1.2 Silverlight系统需求 1107 34.2 创建Silverlight解决方案 1108 34.2. 1 Silverlight编译 1109 34.2.2 入口页面 1110 34.3 创建Silverlight项目 1114 34.3.1 设计Silverlight页面 1114 34.3.2 理解XAML 1117 34.3.3 设置属性 1118 34.3.4 XAML 代码隐藏 1119 34.3.5 处理事件 1120 34.3.6 了解Silverlight类库 1121 34.4 布局 1122 34.4.1 Canvas 1123 34.4.2 网格 1127 34.5 动画 1131 34.5.1 动画基础知识 1132 34.5.2 定义动画 1132 34.5.3 StoryBoard类 1133 34.5.4 交互式动画实例 1135 34.5.5 变换 1138 34.6 Silverlight使用Web服务 1141 34.6.1 创建Web服务 1141 34.6.2 添加Web引用 1142 34.6.3 调用Web服务 1143 34.6.4 配置Web服务URL 1144 34.6.5 跨域Web服务调用 1144 34.7 总结 1146
ASP
多文件上传
ASP
多文件上传 通常图片的上传,不是一张两张的,我们需要批量的上传 又不能一次上传太多,总不能一张一张上传吧,这样多麻烦 鉴于此,用js做了一个多文件上传的demo,结合
ASP
不要笑话我还在用如此老套的语言,我也在努力用剩余时间学习,呵呵 要求: 1.可以添加、删除
file
表单
控件
2.上传时验证有效性 3.做文件格式判断 4.服务端重新命名并保存上传的多个文件 5.限制一次最大上传的文件个数
asp
.net教学讲义
全部16章220页
Asp
.net教学讲义 1 讲义内容 6 第一章:
asp
.net和web窗体 6 1.1 NET应用开发架构简介 6 1.1.1. NET框架结构 6 1.1.2 http协议简介 6 1.1.3 静态网页与动态网页 8 1.1.4 客户端代码与服务器端代码 8 1.1.5
ASP
.NET简介 8 1.2 Web 窗体与
ASP
.NET页面 8 1.2.1 简介 8 1.2.2
ASP
.NET应用
程序
的创建方法 9 1.2.3 Web窗体的特点 10 1.2.4 Web 窗体的功能 10 1.2.5 WEB窗体工作原理 11 1.3
ASP
.NET 页的结构 12 1.3.1 @Page指令 13 1.3.2
ASP
.NET的服务器端脚本 14 1.3.3 服务器端脚本示例: 14 1.3.4 后台编码模型 15 1.4 Page事件(页面事件) 15 1.4.1 Page类 15 1.4.2 Web 窗体生命周期 16 1.4.3 Page事件 16 1.4.4 事件顺序 17 1.2.1.1 PageLoad事件 17 1.2.2 处理回送 18 1.2.2.1 回送使用示例 19 1.2.2.2 设置焦点 20 1.2.2.3 为Form
设定
默认按钮 21 1.2.3
ASP
.NET应用
程序
示例 21 第二章:WEB服务器
控件
23 2.1 WEB 服务器
控件
的格式 23 2.2 服务器
控件
的类型 23 2.3 用服务器
控件
建立页面 23 2.3.1 在设计界面上使用服务器
控件
高级编程) 24 2.3.2 在Source界面使用服务器
控件
24 2.3.3 处理服务器
控件
的事件 24 2.4
控件
的常见属性 25 2.5
控件
的种类 26 2.5.1 标签、文本框 27 2.5.2 Button、ImageButton、LinkButton、HyperLink
控件
27 2.5.3 选择
控件
29 2.5.4 Panel和PlaceHolder
控件
32 第三章:
HTML
控件
和验证
控件
35 3.1
HTML
服务器
控件
简介 35 3.2
HTML
服务器
控件
与Web服务器
控件
区别 37 3.3
ASP
.NET
中
的
HTML
服务器
控件
38 3.3.1
Html
Form
控件
38 3.3.2
Html
Image
控件
40 3.3.3 Input
File
控件
42 3.3.4
Html
GenericControl
控件
43 3.4
ASP
.NET2.0新增
控件
45 3.4.1 ImageMap
控件
45 3.4.2
File
Upload
控件
48 3.5 客户端处理 52 3.5.1 第一种方式示例: 52 3.5.2第二种方式:动态注册javascript指令块 53 3.6验证
控件
54 3.6.1验证
控件
简介 54 3.6.2必须字段验证
控件
55 3.6.3 比较验证
控件
56 3.6.4 范围验证
控件
57 3.6.5正则表达式匹配验证
控件
59 3.7自定义验证
控件
62 3.8验证总结
控件
64 第四章:
ASP
.NET内置对象 67 4.1内置对象概述 67 4.2 Response对象和Request对象 67 4.2.1 Response对象的功能,常用属性和方法和示例 67 4.2.2 Request对象的功能,常用属性和方法和示例 71 4.3、HttpServerUtility 对象 76 4.3.1 Execute方法和Transfer方法 76 4.3.2
Html
Encode方法 77 4.3.3 UrlEncode方法 78 4.3.4 MapPath方法 79 第五章:
ASP
.NET状态管理 80 5.1 状态管理概述 80 5.2 存储状态的位置 80 5.3 Application—管理应用
程序
状态 80 5.4 应用
程序
事件 81 5.5 Lock和UnLock方法 81 5.6 添加、更新和移除Application状态项 81 5.7 Cookie 82 5.7.1 创建持久性Cookie对象 82 5.7.2 使用cookie的限制 82 5.7.3 利用cookie保存信息示例 83 5.7.4 使用cookie的缺点 84 5.8 Session—管理用户会话状态 84 5.8.1 Session的属性和方法 84 5.8.2 Session配置 85 5.8.3 session示例 85 5.9 计数器示例 87 5.10 Global.asax 89 5.11 使用Viewstate保持窗体状态 90 5.12 把视图状态用作数据存储 91 5.12.1 视图状态应用示例 92 5.13 利用查询字符串传递数据 92 5.14 利用隐藏的窗体字段传递数据 92 5.14 变量的作用域 93 第六章:站点设计 94 6.1
ASP
.NET应用
程序
文件夹 94 6.2 母版页 96 6.2.1 母版页基础知识 96 6.2.2母版页运行机制 98 6.2.3 母版页的优点 100 6.3 创建母版页 100 6.4 创建内容页 102 6.5 皮肤和主题的概念 104 6.6 样式的应用 105 6.6.1 对单独页面元素使用样式 105 6.6.2 将样式移动到样式表 105 6.6.3 样式表编辑 105 6.7 主题的构成与构建 106 6.8 设置站点级别的样式 107 6.9 站点导航 108 6.9.1站点地图 108 6.9.2 SiteMapDataSource
控件
108 6.10 导航
控件
109 6.10.1 SiteMapPath
控件
109 6.10.2 SiteMapPath
控件
属性 109 6.10.3 Menu
控件
110 6.10.4 Treeview
控件
(高级编程) 110 第七章:
ASP
.NET的安全性 111 7.3安全性的概念 111 7.4
ASP
.NET安全性的类型 111 7.5 身份验证 111 7.5.1 实现基于
表单
的身份验证 112 7.6创建和配置应用
程序
服务数据库 115 7.6.1 使用网站管理工具管理用户和角色 116 7.6.2 授权的概念与创建访问规则 118 7.6.3 使用
控件
管理用户和角色 119 7.6.4 成员资格和角色管理API编程 123 7.6.4.1 成员资格API概述 123 7.6.4.2 角色管理API概述 123 7.6.5 创建、修改、获取和删除用户 123 7.6.6 验证和解锁用户 125 7.6.7 角色管理 126 7.6.8 角色验证 127 7.6.9 其他重要成员 128 第八章:数据绑定 129 8.1 DataBinding概念 129 8.2 数据绑定的语法 129 8.3 DataBind()方法 129 8.4 单值数据绑定 129 8.5重复值数据绑定
控件
132 8.6 绑定
控件
的通用属性介绍 132 8.6.1 列表
控件
133 8.6.2 DataBind方法 134 8.6.3 示例1:BrowseCust.
asp
x 134 8.6.4 重复值数据绑定语法 136 8.6.5 模板的概念 136 8.6.6 Repeater
控件
136 第九章:SQLDataSource
控件
与DataList 139 9.1 数据源
控件
简介 139 9.2 SqlDataSource
控件
139 9.3 示例 141 9.4 添加Insert、Update和Delete语句 143 9.5 DataList
控件
144 9.5.1 使用DataList浏览数据 144 9.5.2 使用DataList编辑数据 147 第十章:数据绑定
控件
(一) 152 10.1 GridView 152 10.1.1 手工配置DridView与定制列 156 10.1.2 实现分页 156 10.1.3 设置排序 157 10.1.4 GridView的字段类型 157 10.1.5 使用CommandField实现数据更新 157 10.1.6 使用hyperlinkField 159 10.1.7 使用Button
File
d字段 161 10.1.8 使用ButtonField按钮字段 161 10.2 DetailView
控件
163 10.2.1 定制DetailView的显示 163 10.2.2 联合使用DetailsView和GridView 163 10.2.3 使用DetailsView插入、更新和删除数据 165 第十一章:数据绑定
控件
(二) 166 11.1 FormView
控件
166 11.1.1 使用FormView进行编辑当前记录 169 11.1.2 双向绑定语法 170 11.1.3 插入记录 170 11.1.4 相关的事件 170 11.2 ObjectDataSource
控件
171 11.2.1 技术内幕 171 11.2.2 实现数据检索示例 172 11.2.3 使用参数 174 第十二章:用户
控件
和自定义
控件
176 12.1 用户
控件
和自定义
控件
概述 176 12.2 什么时候使用用户
控件
176 12.3 创建用户
控件
176 12.4 创建自定义
控件
178 第十三章:配置和错误处理 184 13.1
ASP
.NET应用
程序
配置 184 13.2 配置文件结构 184 13.3 配置层次结构 185 13.4 配置元素 186 13.4.1
186 13.4.2
186 13.4.3
186 13.4.5
187 13.4.6
187 13.4.7
188 13.4.8
188 13.4.9
189 13.5 自定义应用
程序
设置的配置和检索 189 13.5.1
190 13.5.2 自定义标记 190 13.6 使用管理工具 190 第十四章:跟踪、缓存、部署 193 14.1 跟踪简介 193 14.2 页面级跟踪 193 14.3 应用
程序
级跟踪 195 14.4缓存 196 14.4.1页面输出输出缓存 196 14.5 使用页面输出缓存API 197 14.6 数据缓存 198 第十五章:创建Web服务 201 15.1 Web服务简介 201 15.2 Web服务 201 15.3 Web服务的特征 201 15.4 Web服务体系结构 202 15.5 Web服务协议栈 202 15.6 使用.net2005创建Web服务 203 15.7 创建自定义的Web服务 205 15.8 使用自定义的Web服务 207 第十六章:WEBPARTS 209 16.1 Web部件基本知识 209 16.2 门户组件 209 16.3 创建最简单的门户网页 210 16.4 显示模式 213 16.5 目录部件和区域 214 16.6 属性 216 16.7 编辑器部件和区域 218 16.8 格式化Web部件和区域 220
ASP
.NET的网页代码模型及生命周期
第4章
ASP
.NET的网页代码模型及生命周期 从本章开始,就进入了
ASP
.NET应用
程序
开发的世界。在了解了C#的结构,以及面向对象的概念后,就可以从面向对象的思想开发
ASP
.NET应用
程序
。在
ASP
.NET
中
,能够使用面向对象的思想和软件开发
中
的一些思想,例如封装、派生、继承以及高级的设计模式等。本章首先介绍
ASP
.NET
中
最重要的概念---网页代码模型。 4.1
ASP
.NET的网页代码模型 在
ASP
.NET应用
程序
开发
中
,微软提供了大量的
控件
,这些
控件
能够方便用户的开发以及维护。这些
控件
具有很强的扩展能力,在开发过程
中
无需自己手动编写。不仅如此,用户还能够创建自定义
控件
进行应用
程序
开发以扩展现有的服务器
控件
的功能。 4.1.1 创建
ASP
.NET网站 在
ASP
.NET
中
,可以创建
ASP
.NET网站和
ASP
.NET应用
程序
,
ASP
.NET网站的网页元素包含可视元素和页面逻辑元素,并不包含designer.cs文件。而
ASP
.NET应用
程序
包含designer.cs文件。创建
ASP
.NET网站,首先需要创建网站,单击【文件】按钮,在下拉菜单
中
选择【新建网站】选项,单击后会弹出对话框用于
ASP
.NET网站的创建,如图4-1所示。 图4-1 新建
ASP
.NET网站 在【位置】选项
中
,旁边的【下拉菜单】可以按照开发的需求来写,一般选择文件系统,地址为本机的本地地址。语言为.NET网站
中
使用的语言,如果选择Visual C#,则默认的开发语言为C#,否则为Visual Basic。创建了
ASP
.NET网站后,系统会自动创建一个代码隐藏页模型页面Default.
asp
x。
ASP
.NET网页一般由三部分组成,这三个部分如下所示。 q 可视元素:包括
HTML
,标记,服务器空间。 q 页面逻辑元素:包括事件处理
程序
和代码。 q designer.cs页文件:用来为页面的
控件
做初始化工作,一般只有
ASP
.NET应用
程序
(Web Application)才有。
ASP
.NET页面
中
包含两种代码模型,一种是单文件页模型,另一种是代码隐藏页模型。这两个模型的功能完全一样,都支持
控件
的拖拽,以及智能的代码生成。 4.1.2 单文件页模型 单文件页模型
中
的所有代码,包括
控件
代码、事物处理代码以及
HTML
代码全都包含在.
asp
x文件
中
。编程代码在script标签,并使用runat=“server”属性标记。创建一个单文件页模型,在【文件】按钮
中
选择【新建文件】选项,在弹出对话框
中
选择【Web窗体】或在右击当前项目,在下拉菜单
中
选择【添加新建项】选项即可创建一个.
asp
x页面,如图4-2所示。 图4-2 创建单文件页模型 在创建时,去掉【将代码放在单独的文件
中
】复选框的选择即可创建单文件页模型的
ASP
.NET文件。创建后文件会自动创建相应的
HTML
代码以便页面的初始化,示例代码如下所示。 <%@ Page Language=“C#” %> html PUBLIC “-//W3C//DTD X
HTML
1.0 Transitional//EN” “http://www.w3.org/TR/x
html
1/DTD/x
html
1-transitional.dtd”> <script runat=“server”> html xmlns=“http://www.w3.org/1999/x
html
”>
无标题页
html
> 编译并运行,即可看到一个空白的页面被运行了。
ASP
.NET单文件页模型在创建并生成时,开发人员编写的类将编译成
程序
集,并将该
程序
集加载到应用
程序
域,并对该页的类进行实例化后输出到浏览器。可以说,.
asp
x页面的代码也即将会生成一个类,并包含内部逻辑。在浏览器浏览该页面时,.
asp
x页面的类实例化并输出到浏览器,反馈给浏览者。
ASP
.NET单文件页模型运行示例图如图4-3所示。 图4-3 单文件页模型 4.1.3 代码隐藏页模型 代码隐藏页模型与单文件页模型不同的是,代码隐藏页模型将事物处理代码都存放在cs文件
中
,当
ASP
.NET网页运行的时候,
ASP
.NET类生成时会先处理cs文件
中
的代码,再处理.
asp
x页面
中
的代码。这种过程被成为代码分离。 代码分离有一种好处,就是在.
asp
x页面
中
,开发人员可以将页面直接作为样式来设计,即美工人员也可以设计.
asp
x页面,而.cs文件由
程序
员来完成事务处理。同时,将
ASP
.NET
中
的页面样式代码和逻辑处理代码分离能够让维护变得简单,同时代码看上去也非常的优雅。在.
asp
x页面
中
,代码隐藏页模型的.
asp
x页面代码基本上和单文件页模型的代码相同,不同的是在script标记
中
的单文件页模型的代码默认被放在了同名的.cs文件
中
,.
asp
x文件示例代码如下所示。 <%@ Page Language=“C#” AutoEventWireup=“true” Code
File
=“Default.
asp
x.cs” Inherits=“_Default” %> html PUBLIC “-//W3C//DTD X
HTML
1.0 Transitional//EN” “http://www.w3.org/TR/x
html
1/DTD/x
html
1-transitional.dtd”> <
html
xmlns=“http://www.w3.org/1999/x
html
”>
无标题页
html
> 从上述代码
中
可以看出,在头部声明的时候,单文件页模型只包含Language=“C#”,而代码隐藏页模型包含了Code
File
=“Default.
asp
x.cs”,说明被分离出去处理事物的代码被定义在Default.
asp
x.cs
中
,示例代码如下所示。 using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.
Html
Controls; //使用
Html
Controls using System.Web.UI.WebControls; //使用WebControls using System.Web.UI.WebControls.WebParts; //使用WebParts public partial class _Default : System.Web.UI.Page //继承自System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } } 上述代码为Default.apx.cs页面代码。从上述代码可以看出,其格式与类库、编写类的格式相同,这也说明了.
asp
x页面允许使用面向对象的特性,如多态、继承等。但是
ASP
.NET代码隐藏页模型的运行过程比单文件页模型要复杂,运行示例图如图4-4所示。 图4-4 代码隐藏页模型 上述描述了代码隐藏类模型的页面生成模型。当页面被呈现之前,
ASP
.NET应用
程序
会解释并编译相应的cs文件
中
的代码,与此同时,
ASP
.NET应用
程序
还会将.
asp
x页面进行编译并生成.
asp
x页面对应的类。生成.
asp
x页面对应的类后会将该类与cs文件
中
的类进行协调生成新的类,该类会通过IIS在用户浏览页面时呈现在用户的浏览器
中
。 4.1.4 创建
ASP
.NET Web Application
ASP
.NET网站有一种好处,就是在编译后,编译器将整个网站编译成一个DLL(动态链接库),在更新的时候,只需要更新编译后的DLL(动态链接库)文件即可。但是
ASP
.NET网站却有一个缺点,编译速度慢,并且类的检查不彻底。 相比之下,
ASP
.NET Web Application不仅加快了速度,只生成一个
程序
集,而且可以拆分成多个项目进行管理。创建Application,首先需要新建项目用于开发Web Application,单击菜单栏上的【文件】按钮,在下拉菜单
中
选择【新建项目】选项,在弹出窗口
中
选择【
ASP
.NET应用
程序
】选项,如图4-5所示。 图4-5 创建
ASP
.NET应用
程序
在创建了
ASP
.NET应用
程序
后,系统同样会默认创建一个Default.
asp
x页面,不同的是,多出了一个Default.
asp
x.designer.cs,用来初始化页面
控件
,一般不需要修改。 4.1.5
ASP
.NET网站和
ASP
.NET应用
程序
的区别 在
ASP
.NET
中
,可以创建
ASP
.NET网站和
ASP
.NET应用
程序
,但是
ASP
.NET网站和
ASP
.NET应用
程序
开发过程和编译过程是有区别的。
ASP
.NET应用
程序
主要有以下特点: q 可以将
ASP
.NET应用
程序
拆分成多个项目以方便开发,管理和维护。 q 可以从项目
中
和源代码管理
中
排除一个文件或项目。 q 支持VSTS的Team Build方便每日构建。 q 可以对编译前后的名称,
程序
集等进行自定义。 q 对App_GlobalResources 的Resource强类支持。
ASP
.NET WebSite编程模型具有以下特点: q 动态编译该页面,而不用编译整个站点。 q 当一部分页面出现错误不会影响到其他的页面或功能。 q 不需要项目文件,可以把一个目录当作一个Web应用来处理。 总体来说,
ASP
.NET网站适用于较小的网站开发,因为其动态编译的特点,无需整站编译。而
ASP
.NET应用
程序
适应大型的网站开发、维护等。 4.2 代码隐藏页模型的解释过程 在
ASP
.NET的代码隐藏页模型
中
,一个完整的.
asp
x页面包含两个页面,分别是以.
asp
x和.cs文件为后缀的文件,这两个文件在形成了整个Web窗体。在编译的过程
中
都被编译成由项目生成的动态链接库(.DLL),同时,.
asp
x页面同样也会编译。但是与.cs页面编译过程不同的是,当浏览者第一次浏览到.
asp
x页面时,
ASP
.NET自动生成该页的.NET类文件,并将其编译成另一个.DLL文件。 当浏览者再一次浏览该页面的时候,生成的.DLL就会在服务器上运行,并响应用户在该页面上的请求或响应,
ASP
.NET应用
程序
的解释过程图如4-6所示。 图4-6 代码隐藏页模型页面的执行过程 在客户端浏览器访问该页面时,浏览器会给IIS发送请求消息,IIS则会开始执行
ASP
.NET编译过程,如果不存在编译过后的DLL文件,则加载编译的类并创建对象。当创建对象完成,生成创建对象后的代码并生成一个
ASP
X页面代码,该页面代码反馈给IIS,IIS再反馈成
HTML
页面的形式给客户端。 4.3 代码隐藏页模型的事件驱动处理 在传统的
ASP
开发
中
,
ASP
的事件都是按照网页的顺序来处理的,一般情况下,
ASP
页面的事件都是从上到下处理事件,可以说
ASP
的开发是一个线性的处理模型。在用户的浏览操作
中
,每一次用户的操作都会导致页面重新被发送到服务器。因此,重复的操作必然导致客户端和服务器的往返过程,服务器必须重新创建页面,当创建页面后,服务器再按照原来的从上到下的顺序进行事件处理。 在
ASP
.NET
中
,通过使用模拟事件驱动模型的行为代替了
ASP
的线性处理模型。
ASP
.NET页框架模型隐式的为用户建立了事件和事件处理
程序
的关联。
ASP
.NET让用户可以为从浏览器传递的事件在服务器代码
中
设置相应的处理
程序
。假设某个用户正在浏览网站并与页面之间产生了某种交互,用户的操作就会引发事件,事件通过HTTP被传输到服务器。在服务器
中
,
ASP
.NET框架解释信息,并触发事件与之对应的处理
程序
。该
程序
可以是.
asp
x页面
中
的处理
程序
,也可以是开发者自定义的类库,或者COM组件等。事件驱动处理如图4-7所示。 图4-7 页面框架的事件驱动处理模型 上图则说明了当一个浏览者通过浏览器触发
ASP
X页面时,浏览器、服务器和服务器返回页的过程。 4.4
ASP
.NET客户端状态 Web开发不像软件开发,Web应用实际上是没有状态的,这就说明Web应用
程序
不自动指示序列
中
的请求是否来自相同的浏览器或客户端,也无法判断浏览器是否一直在浏览一个页面或者一个站点,也无法判断用户执行了哪个操作并统计用户的喜好。 4.4.1 视图状态 从上面的章节
中
可以知道,当服务器每次的往返过程,都将销毁页面并重新创建新的页面。如果一个页面
中
的信息超出了页面的生命周期,那么这个页面
中
的相关信息就不存在了。如果注销了页面的信息,那么用户的一些信息可能就不存在了。 在
ASP
.NET
中
,网页包含视图状态来保存用户的信息,视图状态在页面发回到自身时,跨页过程存储和用户自己的页面的特定值,视图状态的优点如下所示。 q 不需要任何服务器资源。 q 在默认情况下,对
控件
启用状态的数据进行维护,不会被破坏。 q 视图状态的值经过哈希运算和压缩保护,安全性更高。 视图状态同样有一些缺点,缺点如下所示。 q 视图状态会影响性能,如果页面存储较大较多的值,则性能会有较大的影响。 q 在手机,移动终端上,可能无法保存视图状态
中
使用的值。 q 视图状态虽然安全性较高,但是还是有风险,如果直接查看页面代码,可以看到相应代码。 4.4.2
控件
状态
ASP
.NET
中
还提供了
控件
状态属性作为在服务器往返过程
中
存储自定义
控件
中
的数据的方法。在页面
控件
中
,如果有多个自定义
控件
使用多个不同的
控件
来显示不同的数据结构,为了让这些页面
控件
能够在在页面上协调的工作,则需要使用
控件
状态来保护
控件
,同时,
控件
状态是不能被关闭的。同样,
控件
状态也有它的优点,优点如下所示。 q 与视图状态相同的是,不需要任何服务器资源。 q
控件
状态是不能被关闭的,提供了
控件
管理的更加可靠的方法。 q
控件
状态具有通用性。 4.4.3 隐藏域 在
ASP
中
,通常使用隐藏域保存页面的信息。在
ASP
.NET
中
,同样具有隐藏域来保存页面的信息,作为维护页面状态的一种形式,但是隐藏域的安全性并不高,最好不要在隐藏域保存过多的信息。隐藏域具有以下优点。 q 不需要任何服务器资源。 q 支持广泛,任何客户端都支持隐藏域。 q 实现简单,隐藏域属于
HTML
控件
,无需像服务器
控件
那样有需要编程知识。 而隐藏域具有一些不足,如下所示。 q 具有较高的安全隐患。 q 存储结构简单。 q 同样,如果存储了较多的较大的值,则会导致性能问题。 q 如果隐藏域过多,则在某些客户端
中
被禁止。 q 隐藏域将数据存储在服务器上,而不存储在客户端。 注意:如果开发
中
,页面的隐藏域过多,这些隐藏域被存储在服务器。当客户端浏览页面的时候,会有一些防火墙扫描页面,以保证操作系统的安全,如果页面的隐藏域过多,那么这些防火墙可能会禁止页面的某些功能。 4.4.4 Cookie Cookie在客户端用户保存网站的少量的用户信息,服务器可以通过编程的方法获取用户信息,Cookie信息和页面请求通常一起发送到服务器,服务器对客户端传递过来的Cookie信息做处理。通常Cookie保存用户的登录状态、用户名等基本信息等等,在后面的章节会详细介绍使用
ASP
.NET操作Cookies。 4.4.5 客户端状态维护 虽然使用某些客户端状态并不使用服务器资源,但是这些状态都具有潜在的安全隐患,如Cookie。非法用户可以使用Cookie欺骗来攻击网站进行用户信息的获取,不过使用客户端状态能够使用客户端的资源从而提高服务器性能。使用客户端状态,虽然有安全隐患,但是具有良好的编程能力,以及基本的安全知识,能够较好的解决安全问题,同时也能够提高服务器性能。下面小结了一些客户端状态的优缺点。 q 视图状态:推荐当存储少量挥发到自身的页面的信息时使用。 q
控件
状态:不需要任何服务器资源,
控件
状态是不能被关闭的,提供了
控件
管理的更加可靠和更通用的方法。 q 隐藏域:实现简单,但是在应用
程序
中
会造成一些安全隐患。 q Cookie:实现简单,同样也能够简单的获取用户的信息,但是Cookie有大小的限制,不适宜存储大量的代码。 4.5
ASP
.NET页面生命周期
ASP
.NET页面运行时,也同类的对象一样,有自己的生命周期。
ASP
.NET页面运行时,
ASP
.NET页面将经历一个生命周期,在生命周期内,该页面将执行一系列的步骤,包括
控件
的初始化,
控件
的实例化,还原状态和维护状态等,以及通过IIS反馈给用户呈现成
HTML
。
ASP
.NET页面生命周期是
ASP
.NET
中
非常重要的概念,了解
ASP
.NET页面的生命周期,就能够在合适的生命周期内编写代码,执行事务。同样,熟练掌握
ASP
.NET页面的生命周期,可以开发高效的自定义
控件
。
ASP
.NET生命周期通常情况下需要经历几个阶段,这几个阶段如下所示。 q 页请求:页请求发生在页生命周期开始之前。当用户请求一个页面,
ASP
.NET将确定是否需要分析或者编译该页面,或者是否可以在不运行页的情况下直接请求缓存响应客户端。 q 开始:发生了请求后,页面就进入了开始阶段。在该阶段,页面将确定请求是发回请求还是新的客户端请求,并设置IsPostBack属性。 q 初始化:在页面开始后,进入了初始化阶段。初始化期间,页面可以使用服务器
控件
,并为每个服务器
控件
进行初始化。 q 加载:页面加载
控件
。 q 验证:调用所有的验证
程序
控件
的Vailidate方法,来设置各个验证
程序
控件
和页的属性。 q 回发事件:如果是回发请求,则调用所有事件处理的
程序
。 q 呈现:在呈现期间,视图状态被保存并呈现到页。 q 卸载:完全呈现页面后,将页面发送到客户端并准备丢弃时,将调用卸载。 4.6
ASP
.NET生命周期
中
的事件 在页面周期的每个阶段,页面将引发可运行用户代码进行处理事件。对于
控件
产生的事件,通过声明的方式执行代码,并将事件处理
程序
绑定到事件。不仅如此,事件还支持自动事件连接,最常用的就是Page_Load事件了,除了Page_Load事件以外,还有Page_Init等其他事件,本节将会介绍此类事件。 4.6.1 页面加载事件(Page_PreInit) 每当页面被发送到服务器时,页面就会重新被加载,启动Page_PreInit事件,执行Page_PreInit事件代码块。当需要对页面
中
的
控件
进行初始化时,则需要使用此类事件,示例代码如下所示。 protected void Page_PreInit(object sender, EventArgs e) //Page_PreInit事件 { Label1.Text = “OK”; //标签赋值 } 在上述代码
中
,当触发了Page_PreInit事件时,就会执行该事件的代码,上述代码将Lable1的初始文本值设置为“OK”。Page_PreInit事件能够让用户在页面处理
中
,能够让服务器加载时只执行一次而当网页被返回给客户端时不被执行。在Page_PreInit
中
可以使用IsPostBack来实现,当网页第一次加载时IsPostBack属性为false,当页面再次被加载时,IsPostBack属性将会被设置为true。IsPostBack属性的使用能够影响到应用
程序
的性能。 4.6.2 页面加载事件(Page_Init) Page_Init事件与Page_PreInit事件基本相同,区别在于Page_Init并不能保证完全加载各个
控件
。虽然在Page_Init事件
中
,依旧可以访问页面
中
的各个空间,但是当页面回送时,Page_Init依然执行所有的代码并且不能通过IsPostBack来执行某些代码,示例代码如下所示。 protected void Page_Init(object sender, EventArgs e) //Page_Init事件 { if (!IsPostBack) //判断是否第一次加载 { Label1.Text = “OK”; //将成功信息赋值给标签 } else { Label1.Text = “IsPostBack”; //将回传的值赋值给标签 } } 4.6.3 页面载入事件(Page_Load) 大多数初学者会认为Page_Load事件是当页面第一次访问触发的事件,其实不然,在
ASP
.NET页生命周期内,Page_Load远远不是第一次触发的事件,通常情况下,
ASP
.NET事件顺序如下所示。 q 1. Page_Init()。 q 2. Load ViewState。 q 3. Load Postback data。 q 4. Page_Load()。 q 5. Handle control events。 q 6. Page_PreRender()。 q 7. Page_Render()。 q 8. Unload event。 q 9. Dispose method called。 Page_Load事件是在网页加载的时候一定会被执行的事件。在Page_Load事件
中
,一般都需要使用IsPostBack来判断用户是否进行了操作,因为IsPostBack指示该页是否正为响应客户端回发而加载,或者它是否正被首次加载和访问,示例代码如下所示。 protected void Page_Load(object sender, EventArgs e) //Page_Load事件 { if (!IsPostBack) { Label1.Text = “OK”; //第一次执行的代码块 } else { Label1.Text = “IsPostBack”; //如果用户提交
表单
等 } } 上述代码使用了Page_Load事件,在页面被创建时,系统会自动在代码隐藏页模型的页面
中
增加此方法。当用户执行了操作,页面响应了客户端回发,则IsPostBack为true,于是执行else
中
的操作。 4.6.4 页面卸载事件(Page_Unload) 在页面被执行完毕后,可以通过Page_Unload事件用来执行页面卸载时的清除工作,当页面被卸载时,执行此事件。以下情况会触发Page_Unload事件。 q 页面被关闭。 q 数据库连接被关闭。 q 对象被关闭。 q 完成日志记录或者其他的
程序
请求。 4.6.5 页面指令 页面指令用来通知编译器在编译页面时做出的特殊处理。当编译器处理
ASP
.NET应用
程序
时,可以通过这些特殊指令要求编译器做特殊处理,例如缓存、使用命名空间等。当需要执行页面指令时,通常的做法是将页面指令包括在文件的头部,示例代码如下所示。 <%@ Page Language=“C#” AutoEventWireup=“true” CodeBehind=“Default.
asp
x.cs” Inherits=“MyWeb._Default” %> html PUBLIC “-//W3C//DTD X
HTML
1.0 Transitional//EN” “http://www.w3.org/TR/x
html
1/DTD/x
html
1-transitional.dtd”> 上述代码
中
,就使用了@Page页面指令来定义
ASP
.NET页面分析器和编译器使用的特定页的属性。当代码隐藏页模型的页面被创建时,系统会自动增加@Page页面指令。
ASP
.NET页面支持多个页面指令,常用的页面指令如下所示。 q @ Page:定义
ASP
.NET页分析器和编译器使用的页特定(.
asp
x文件)属性,可以编写为<%@ Page attribute=“value” [attribute=“value”…]%>。 q @ Control:定义
ASP
.NET页分析器和编译器使用的用户
控件
(.ascx文件)特定的属性。该指令只能为用户
控件
配置。可以编写为<%@ Control attribute=“value” [attribute=“value”…]%>。 q @ Import:将命名空间显示导入到页
中
,使所导入的命名空间的所有类和接口可用户该页。导入的命名空间可以是.NET Framework类库或用户定义的命名空间的一部分。可以编写为<%@ Import namespace=“value” %>。 q @ Implements:提示当前页或用户
控件
实现制定的.NET Framework接口。可以编写为<%@ Implements interface=“ValidInterfaceName” %>。 q @ Reference:以声明的方式指示,应该根据在其
中
声明此指令的页对另一个用户
控件
或页源文件进行动态编译和链接。可以编写为<%@ Reference page | control=“pathto
file
” %>。 q @ Output Cache:以声明的方式空间
ASP
.NET页或页
中
包含的用户
控件
的输出缓存策略。可以编写为<%@ Output Cache Duration=“#ofseconds” Location=“Any | Client | Downstream | Server | None” Shared=“True |False” VaryByControl=“controlname” VaryByCustom=“browser | customstring” VaryByHeader=“headers” VaryByParam=“parametername” %> q @ Assembly:在编译过程
中
将
程序
集链接到当前页,以使
程序
集的所有类和接口都可用在该页上。可以编写为<%@ Assembly Name=“assemblyname” %>或<%@ Assembly Src=“pathname” %>的方式。 q @ Register:将别名与命名空间以及类名关联起来,以便在自定义服务器
控件
语法
中
使用简明的表示法。可以编写为<%@ Register tagprefix=“ tagprefix” Namespace=“namepace” Assembly=“assembly” %>或<%@ Register tagprefix=“ tagprefix” Tagname=“tagname” Src=“pathname” %>的方式。 4.7
ASP
.NET网站文件类型 在
ASP
.NET
中
包含诸多的文件类型,这些类型的文件由
ASP
.NET支持和管理,而除了这些文件以外,其他的文件都由IIS托管。使用VS2008能够创建大部分可以使用
ASP
.NET托管运行的
程序
。同时,使用应用
程序
映射可以将文件类型映射到应用
程序
。当需要伪静态时,很可能需要将.
html
后缀托管到IIS
中
的应用扩展,因为默认情况下
ASP
.NET不会处理
HTML
的操作。 技巧:现在的网站构架
中
,生成静态是一种降低网站压力的一种很好的解决方案。在某些情况下,服务器可能需要伪静态支持,就是将.
asp
x页面后缀显式成.
html
后缀,让搜索引擎能够更好的搜录。 1.
ASP
.NET管理的文件类型
ASP
.NET管理的文件类型能够在
ASP
.NET应用
程序
中
被
ASP
.NET应用
程序
的不同模块进行访问和调用,这些文件可能是用户能够直接访问的,也有可能是用户无法直接访问的。
ASP
.NET管理的文件类型如表4-1所示。 表4-1
ASP
.NET管理的文件类型 文件类型 保存位置 描述 .asax 根目录。 Global.asax 文件。包含 HttpApplication 对象的派生代码,用于重新展示 Application 对象。 .ascx 根目录或子目录。 可重用的自定义 Web
控件
。 .ashx 根目录或子目录。 处理器文件。包含实现 IHttpHandler 接口的代码,用于处理输入请求。 .asmx 根目录或子目录。 XML Web Services 文件。包含由 SOAP 提供给其他 Web 应用的类对象和功能。 .
asp
x 根目录或子目录。
ASP
.NET Web 窗体。包含 Web
控件
和其他业务逻辑。 .axd 根目录。 跟踪视图文件。通常是 Trace.axd。 .browser App_Browsers 目录。 浏览器定义文件。用于识别客户端浏览器的可用特征。 .cd 根目录或子目录。 类图文件。 .compile Bin 目录。 定位于适当汇编集
中
的预编译文件。可执行文件(.
asp
x,.ascx,.master,theme)预编译后放在 Bin 目录。 .config 根目录或子目录。 Web.config 配置文件。包含用于配置
ASP
.NET 若干特征的 XML 元素集。 .cs,.jsl,vb App_Code 目录。有些是
ASP
.NET 的代码分离文件,位于与 Web 页面相同的目录。 运行时被编译的类对象源代码。类对象可以是 HTTP 模块,HTTP 处理器,或
ASP
.NET 页面的代码分离文件。 .csproj,vbproj,vjsproj Visual Studio 工程目录。 Visual Studio 客户工程文件。 .disco,.vsdisco App_WebReferences 目录。 XML Web Services Discovery 文件。用于定位可用 Web Services。 .dsdgm,dsprototype 根目录或子目录。 分布式服务图表(DSD)文件。可添加到 Visual Studio 方案
中
,为反向引擎提供消耗 Web Services 时的交互性图表。 .dll Bin 目录。 已编译类库文件。作为替代,可将类对象源代码保存到 App_Code 目录。 .licx,.webinfo 根目录或子目录。 许可协议文件。许可协议有助于保护
控件
开发者的知识产权,并对
控件
用户的使用权进行验证。 .master 根目录或子目录。 模板文件定义 Web 页面的统一布局,并在其他页面
中
得到引用。 .mdb,.ldb App_Data 目录。 Access 数据库文件。 .mdf App_Data 目录。 SQLServer 数据库文件。 .msgx,.svc 根目录或子目录。 Indigo Messaging Framework(MFx)服务文件。 .rem 根目录或子目录。 远程处理器文件。 .resources App_GlobalResources 或 App_LocalResources 目录。 资源文件。包含图像,本地化文本,或其他数据的资源引用串。 .resx App_GlobalResources 或 App_LocalResources 目录。 资源文件。包含图像,本地化文本,或其他数据的资源引用串。 .sdm,.sdmDocument 根目录或子目录。 系统定义模型(SDM)文件。 .sitemap 根目录。 网站地图文件。包含网站的结构。
ASP
.NET 通过默认的网站地图提供者,简化导航
控件
对网站地图文件的使用。 .skin App_Themes 目录。 皮肤定义文件。用于确定显示格式。 .sln Visual Web Developer 工程目录。 Visual Web Developer 工程的项目文件。 .soap 根目录或子目录。 SOAP 扩展文件。 注意:
ASP
.NET 管理的文件类型映射到 IIS 的
Asp
net_isapi.dll。 2.IIS 管理的文件类型 在
ASP
.NET应用
程序
中
,有些动态的文件如
asp
文件就不被
ASP
.NET应用
程序
框架管理,这些文件由IIS进行管理,由IIS管理的文件类型如表4-2所示。 表4-2 IIS管理的文件类型 文件类型 保存位置 描述 .asa 根目录。 Global.asa 文件。包含
ASP
会话对象或应用
程序
对象生命周期
中
的各种事件处理。 .
asp
根目录或子目录.
ASP
Web 页面。包含 @ 指令和使用
ASP
内建对象的脚本代码。 .cdx App_Data 目录. Visual FoxPro 的混合索引文件。 .cer 根目录或子目录。 证明文件。用于对网站的授权。 .idc 根目录或子目录。 Internet Database Connector(IDC)文件。被映射到 httpodbc.dll。 注意:由于无法为数据库连接提供足够的安全性,IDC 将不再被继续使用。IIS 6.0 是最后一个支持 IDC 的版本。 .shtm,.s
html
,.stm 根目录或子目录。 包含文件。被映射到 ssinc.dll。 注意:IIS管理的文件类型被映射到IIS的
asp
.dll 3.静态文件类型 IIS仅提供已注册MIME类型的静态文件服务,注册信息保存在Mime Map IIS元数据库
中
。如果某种文件类型已经映射到指定应用
程序
,在不需要作为静态文件的情况之下,无需再在MIME类型列表
中
进行包含。默认的静态文件类型如表4-3所示。 表4-3 静态文件类型 文件类型 保存位置 描述 .css 根目录或子目录,以及 App_Themes 目录。 样式表文件。用于确定
HTML
元素的显示格式。 .htm,.
html
根目录或子目录。 静态网页文件。由
HTML
代码编写。 注意:虽然
ASP
.NET的代码页面也能够手动添加到MIME类型列表
中
,但是这样操作浏览者就能够看到页面源代码,从而暴露
ASP
.NET页面源代码,相对于服务器而言是非常不安全的。 4.8 小结 本章介绍了
ASP
.NET页面生命周期,以及
ASP
.NET页面的几种模型。
ASP
.NET页面生命周期是
ASP
.NET
中
非常重要的概念,熟练掌握
ASP
.NET生命周期能对
ASP
.NET开发,自定义
控件
开发起到促进作用。本章还介绍了: q 代码隐藏页模型的解释过程。 q 代码隐藏页模型的事件驱动处理。 q
ASP
.NET网页的客户端状态。 q
ASP
.NET页面生命周期。 q
ASP
.NET生命周期
中
的事件。 q
ASP
.NET 网站文件类型。 上面的章节都分开的讲解了
ASP
.NET运行
中
的一些基本机制,在了解了这些基本运行机制后,就能够在.NET框架下做
ASP
.NET开发了。虽然这些都是基本概念,但是在今后的开发
中
,会起到非常重要的作用。
ASP
28,390
社区成员
357,068
社区内容
发帖
与我相关
我的任务
ASP
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
复制链接
扫一扫
分享
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章