ASP.NET -- Web Pages/WebForms

一、Web Pages概述

1. 什么是 Web Pages?
  Web Pages 是三种创建 ASP.NET 网站和 Web 应用程序的编程模式中的一种。其他两种编程模式是 Web Forms 和 MVC(Model View Controller 模型-视图-控制器)。
  Web Pages 是开发 ASP.NET 网页最简单的开发模式。它提供了一种简单的方式来将 HTML、CSS、JavaScript 和服务器脚本结合起来。


2. Web Pages路径

~ 运算符 , 使用 ~ 运算符,在编程代码中规定虚拟路径
  如果使用 ~ 运算符,在站点迁移到其他不同的文件夹或者位置时,可以不用更改任何代码:

var myImagesFolder = "~/images";
var myStyleSheet = "~/styles/StyleSheet.css";

Server.MapPath 方法
  Server.MapPath 方法将虚拟路径(/index.html)转换成服务器能理解的物理路径(C:\Documents\MyWebSites\Demo\default.html)

当需要打开服务器上的数据文件时,可以使用这个方法(只有提供完整的物理路径才能访问数据文件):

var pathName = "~/dataFile.txt";
var fileName = Server.MapPath(pathName);

3. Page对象 方法、属性

4. Page 类

5. Database对象


二、Web Forms概述

1. 什么是 Web Forms?
  Web Forms 是三种创建 ASP.NET 网站和 Web 应用程序的编程模式中的一种。其他两种编程模式是 Web Pages 和 MVC(Model View Controller 模型-视图-控制器)。
  Web Forms 是最古老的 ASP.NET 编程模式,是整合了 HTML、服务器控件和服务器代码的事件驱动网页。Web Forms 是在服务器上编译和执行的,再由服务器生成 HTML 显示为网页。Web Forms 有数以百计的 Web 控件和 Web 组件用来创建带有数据访问的用户驱动网站。现在公司的项目用到的就是WebForms,吐槽一句,Technology is so backward。


2. 它是如何工作的?

从根本上讲,ASP.NET 页面与 HTML 是完全相同的。

  • HTML页面的扩展名是.htm,如果浏览器向服务器请求一个HTML页面,服务器可以不进行任何修改,就直接发送页面给浏览器;
  • ASP.NET页面的扩展名是 .aspx,如果浏览器向服务器请求ASP.NET页面,服务器在将结果发回给浏览器之前,需要先处理页面中的可执行代码。

转换 HTML 页面为 ASP.NET 页面最简单的方法是,直接复制一个 HTML 文件,并把新文件的扩展名改成 .aspx


三、Web Forms控件

ASP.NET控件分为:HTML 服务器控件、Web服务器控件、Validation 服务器控件

1. HTML 服务器控件

HTML服务器控件是服务器可理解的 HTML 标签
  ASP.NET 文件中的 HTML 元素,默认是作为文本进行处理的。要想让这些元素可编程,需向 HTML 元素中添加 runat="server"属性。这个属性表示,该元素将被作为服务器控件进行处理,同时需要添加 id 属性来标识服务器控件,id 引用可用于操作运行时的服务器控件。

注释:所有 HTML 服务器控件必须位于带有 runat="server" 属性的 <form> 标签内,runat="server" 属性表明了该表单必须在服务器上进行处理,同时也表明了包含在它内部的控件可被服务器脚本访问。


2.Web 服务器控件

Web 服务器控件是服务器可理解的特殊 ASP.NET 标签。
  就像 HTML 服务器控件,Web 服务器控件也是在服务器上创建的,它们同样需要 runat=“server” 属性才能生效。然而,Web 服务器控件没有必要映射任何已存在的 HTML 元素,它们可以表示更复杂的元素。

创建 Web 服务器控件的语法是:
<asp:control_name id="some_id" runat="server" />


3.Validation 服务器控件

Validation 服务器控件是用来验证用户输入的,如果用户输入没有通过验证,将显示一条错误消息给用户。
  每种 validation 控件执行一种指定类型的验证(比如验证某个指定的值或者某个范围的值)。在默认情况下,当 Button、ImageButton、LinkButton 控件被点击时,会执行页面验证。您可以设置 CausesValidation 为 false ,来阻止按钮控件被点击时进行验证。

创建 Validation 服务器控件的语法是:
<asp:control_name id="some_id" runat="server" />


4. Web Forms 表单
  所有的服务器控件都必须出现在 <form> 标签中,<form> 标签必须包含 runat=“server” 属性。runat=“server” 属性表明该表单必须在服务器上进行处理,同时也表明了包含在它内部的控件可被服务器脚本访问:

<form runat="server">

...HTML + server controls

</form>

该表单总是被提交到自身页面。如果您指定了一个 action 属性,它会被忽略。如果您省略了 method 属性,它将会默认设置 method=“post”。同时,如果您没有指定 name 和 id 属性,它们会由 ASP.NET 自动分配。

注意:一个 .aspx 页面只能包含一个 <form runat="server"> 控件!


5. 常使用的WebForms控件

<asp:TextBox id="txt1" runat="server" />
<asp:Button OnClick="submit" Text="Submit" runat="server" />

  • ASP.NET HTML控件HTML Button、HTML InputImage、HTML Table
  • ASP.NET Web控件Button、Checkbox、ImageButton、Label、Repeater、Table、Textbox
  • ASP.NET Validation 控件CompareValidator、CustomValidator、RegularExpressionValidator、RequiredFieldValidator、Validationsummary

代码:

<html>
<body>

	<form runat="server">
	<p>Enter a number from 1 to 100:
	<asp:TextBox id="tbox1" runat="server" />
	<br /><br />
	<asp:Button Text="Submit" runat="server" />
	</p><p>

	<asp:RangeValidator
	ControlToValidate="tbox1"
	MinimumValue="1"
	MaximumValue="100"
	Type="Integer"
	Text="The value must be from 1 to 100!"
	runat="server" />
	</p>
	</form>

</body>
</html>

四、WebForms补充

1.Page_Load 事件
  Page_Load 事件是 ASP.NET 可理解的众多事件之一。Page_Load 事件会在页面加载时被触发, ASP.NET 将自动调用 Page_Load 子例程,并执行其中的代码。

2.维持 ViewState(视图状态)
  在经典 ASP 中,当一个表单被提交时,所有的表单值都会被清空。
  ASP .NET 中,当一个表单被提交时,表单会连同表单值一起出现在浏览器窗口中。如何做到的呢?这是因为 ASP .NET 维持了 ViewState。 ViewState 会在页面被提交到服务器时表明它的状态,这个状态是通过在带有 <form runat="server"> 控件的每个页面上放置一个隐藏域定义的。
  源代码如下所示:

<form name="_ctl0" method="post" action="page.aspx" id="_ctl0">
<input type="hidden" name="__VIEWSTATE"
	value="dDwtNTI0ODU5MDE1Ozs+ZBCF2ryjMpeVgUrY2eTj79HNl4Q=" />

	some code...
</form>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值