基于事件驱动模式的 ASP.NET 框架全栈开发
概念
Web窗体页面的生命周期的顺序是:
- (A)视图状态
- (B)初始化
- (C)加载
- (D)处理回发数据
- (E)预呈现
- (F)处置
- (G)保存状态
- (H)呈现
- (I)卸载 答案:
- 初始化(B)
- 加载(C)
- 处理回发数据(D)
- 视图状态(A)
- 预呈现(E)
- 保存状态(G)
- 呈现(H)
- 处置(F)
- 卸载(I)
控件
html 属性
width 属性:元素的宽度 height 属性:元素的高度 readonly 属性:只读文本区域
标准属性
每个 asp 控件都有标准属性
Visible:决定控件是否显示,True 显示,False 隐藏
|
|
Label 控件
在页面上显示文本
属性 | 描述 |
---|---|
runat | 该控件是一个服务器控件必须设置为 “server” |
Text | 在 label 中显示的文本 |
Button 控件
Button 控件用于显示按钮按钮可以是提交按钮或命令按钮,默认是提交按钮 提交按钮没有命令名称,在它被点击时它会把网页传回服务器 命令按钮拥有命令名称,且允许您在页面上创建多个按钮控件
属性 | 描述 |
---|---|
CausesValidation | 当 Button 被点击时是否验证页面 |
CommandArgument | 要执行的命令的参数 |
CommandName | 与 Command 事件相关的命令 |
OnClientClick | 当按钮被点击时被执行的函数的名称 |
PostBackUrl | 当 Button 控件被点击时从当前页面传送数据的目标页面 |
runat | 该控件是服务器控件必须设置为 “server” |
Text | 按钮上的文本 |
UseSubmitBehavior | 一个值,决定按钮使用浏览器的提交机制(True),还是使用 ASP.NET 的 postback 机制(FALSE) |
ValidationGroup | 当按钮回传服务器时,该按钮所属的那个控件组引发了验证 |
编程题(填空题/大题)
for 循环求用户输入的整数范围内的奇数之和与偶数之和
题目
|
|
答案
- Cal(Num1, Num2);
- Cal(Num2, Num1);
- x; i <= y; i++
- i % 2 == 0
- sumeven += i;
- sumodd += i;
while 循环产生10以内的随机整数,如果随机整数是9的话就结束循环
代码
|
|
答案
- Random r = new Random();
- !=
- r.Next(10)
- ToString()
for 循环嵌套九九乘法表
题目
|
|
答案
- 9
- i
- i * j
- Label1.Text
<br/>
代码段(填空题)
生成一个 10 以内的随机整数
|
|
生成一个 data 类型的数组 pro,存放一百个数
|
|
数据库
连接字符串
对于SQL Server,连接字符串通常包括服务器地址、数据库名、用户ID和密码。
例如:
Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;
如果使用Windows身份验证,则不需要提供用户ID和密码,可以使用:
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;
对于MySQL,连接字符串可能看起来像这样:
Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
代码
连接 MySQL 数据库并执行语句
|
|
如果是连接到 SQL Server 数据库 MySqlConnection -> SqlConnection MySqlCommand -> SqlCommand MySqlDataReader -> SqlDataReader
aspx 页面代码
题目
Default.aspx 页面代码
|
|
StyleSheet.css 样式表
|
|
答案
- navigation
- left
- mid
- right
- bottom
- width: 100%;
- text-align: center;
- border: 1px solid #00ff00;
- 宽度 100%;
- height: 56px;
- line-height: 56px;
- font-family: 黑体;
- font-size: xx-large;
- width: 100%;
- height: 24px;
- line-height: 24px;
- float: left;
- clear: right;
- clear: both;
简答题
Asp.net 内置对象有哪些?
- Application - 代表当前Web应用程序的全局对象。它用于存储和管理对所有用户会话全局的信息。
- Page - 代表 ASP.NET 页面的类实例,是所有页面请求的基础。它提供了许多方法和属性,用于管理页面的生命周期、处理事件等。
- Request - 提供对客户端发出的 HTTP 请求的详细信息的访问,包括查询字符串、参数、Cookies、头部等。
- Response - 用于向客户端发送 HTTP 响应数据。可以用它来发送输出到客户端、控制响应缓存、设置Cookies等。
- Session - 代表用户会话的对象。此对象用于存储和管理与特定用户会话相关的信息。
- Server - 提供对一组用于处理Web请求的方法的访问,如URL编码和解码、路径映射等。
实现页面跳转的6种方法
超链接 (Anchor Tag): 使用HTML的
<a>
标签创建超链接,是最基本的页面跳转方式。用户点击链接时,浏览器会导航到href
属性指定的URL。HyperLink 控件: ASP.NET 提供的
HyperLink
控件,功能类似于HTML的<a>
标签,但它允许在服务器端设置目标URL。Button 按钮: 使用按钮控件,并在其点击事件处理器中进行页面跳转。这通常通过JavaScript或服务器端代码实现。
Response.Redirect: 在ASP.NET中,
Response.Redirect
方法用于服务器端重定向用户到新的URL。这会发送一个HTTP重定向到客户端。Server.Execute:
Server.Execute
方法用于在服务器上执行另一个页面的处理,但不改变浏览器的URL。这可以用于在服务器端包含一个页面的输出。Server.Transfer:
Server.Transfer
方法也是在服务器端进行页面跳转,它终止当前页面的执行并开始执行新页面。与Server.Execute
不同,Server.Transfer
不会返回到原始页面。
C/S与B/S架构的比较?
定义与特点
C/S架构(Client/Server):全称客户端/服务器架构,是一种典型的两层架构,包括客户端和服务器两部分。客户端负责用户界面和用户交互,服务器负责业务逻辑和数据处理。C/S架构具有高性能、灵活性、可扩展性等特点。 B/S架构(Browser/Server):全称浏览器/服务器架构,是随着Internet技术的兴起,对C/S架构的一种变化或改进。应用程序被分为客户端(浏览器)和服务器两部分,客户端负责显示界面和用户交互,服务器负责业务逻辑和数据处理。B/S架构的特点包括方便使用、易于维护、兼容性好等。
应用环境
C/S架构主要应用于局域网内,适用于需要高性能、复杂数据处理和大规模并发的应用场景,如桌面应用、游戏等。 B/S架构主要应用于广域网中,适用于数据量较小、并发量不高的应用场景,如网上购物、在线银行等。B/S架构的客户端只需安装浏览器,具有更好的通用性和更小的应用环境依赖性。
安全性
C/S架构一般面向相对固定的用户群,对信息安全的控制能力很强,适用于安全性要求较高的信息系统。 B/S架构建立在广域网之上,对安全的控制能力相对较弱,面向的用户范围较广。
维护与升级
C/S架构的维护升级相对困难,需要整体考察和处理出现的问题以及系统升级。 B/S架构的维护升级相对简单,客户端只需通过浏览器访问,服务器端可以方便地进行维护和升级。
软件重用性
C/S架构的构件重用性相对较差,因为需要考虑整体性和不同操作系统、硬件环境的兼容性。 B/S架构的构件相对独立,具有较好的重用性。
技术发展趋势
C/S架构虽然在一些特定领域仍具有优势,但随着网络技术的发展和Web技术的成熟,其应用范围逐渐受到B/S架构的挑战。 B/S架构由于其方便性、易用性和跨平台性等特点,逐渐成为信息系统应用发展的趋势。
APP_Code, APP_Data
APP_Code 通常是一个用于存放应用程序代码的文件夹。在ASP.NET Web Forms中,将代码文件(如C#或VB.NET的代码文件)放在 App_Code 文件夹中,可以让这些代码在运行时动态编译,并且这些代码文件对于整个Web应用程序都是可见的。这提供了一种将代码与Web页面分离的方法,使得代码更加模块化且易于管理。然而,在ASP.NET MVC和其他现代Web开发框架中,开发者更倾向于使用单独的类库项目来组织代码,而不是使用 App_Code 文件夹。 APP_Data 通常是一个用于存放应用程序数据的文件夹。这里的“数据”可以是多种形式的,包括数据库文件(如SQL Server CE的 .sdf 文件)、XML文件、配置文件、日志文件等。将数据文件放在 App_Data 文件夹中是一种组织数据的好方法,它使得数据文件与Web应用程序的其他部分(如页面、图像和脚本)分开。此外,某些Web服务器配置可能会限制对Web根目录之外文件的访问,而 App_Data 文件夹通常位于Web根目录内,因此可以更容易地访问其中的文件。
Page对象
创建和添加控件
|
|
获取ControlCollection对象
该对象表示UI(用户接口)层次结构中指定服务器控件的子控件。
页面回发检测
IsPostBack 返回一个布尔值,表示页面是为响应客户端回发而再次加载的。false 表示首次加载,不是回发。
|
|
弹出消息框
使用 RegisterClientScriptBlock 向浏览器弹出一个消息框。
常用方法
- DataBind() - 数据绑定。
- FindControl(id) - 根据ID查找控件。
Page对象的Load事件与Init事件的比较
- Load事件:在初次加载及每次回发中都会被触发。
- Page Init事件:只有在页面初始化时被触发一次。
Request对象
说明
- Form:获取窗体变量集合。
- UserHostName:获取远程客户端的DNS名称。
- UserHostAddress:获取远程客户端主机IP地址。
常用属性和方法
- MapPath:将虚拟路径映射到物理路径。
- SaveAs:保存上传的文件。
Response对象
说明
- Cache:获取Web页的缓存策略。
- Charset:获取或设置输出流的HTTP字符集。
- Cookies:获取响应Cookie集合,通过该属性可将Cookie信息写入客户端浏览器。
- Write:将信息写入HTTP输出内容流。
示例
|
|
Server对象
说明
- Execute(path):跳转到path指定的另一页面,在另一页面执行完毕后返回当前页。
- Transfer(path):终止当前页面的执行,并为当前请求开始执行path指定的新页。
- MapPath(path):返回与Web服务器上的指定虚拟路径相对应的物理文件路径。
- HtmlEncode(str):将字符串中包含的Html标记直接显示出来。
- HtmlEncode()和HtmlDecode()方法用于对包含HTML标记的字符串进行编码和解码操作。二者互为反操作。
示例
|
|