<%@Page %>
@Page 指令定义 Web 窗体使用的属性,这些属性将被 Web 窗体页分析器和编译器使用。只能包含在 .aspx 文件中。我们每新建一个 Web 页面时,系统会自动为该 Web 页面头部创建一个 @Page 指令,来指明页面最基本的属性。
- Language:表示所使用的语言
- AutoEventWireup:是否页面自动事件回传
- Buffer:用于确定是否启用了 HTTP 响应缓冲
- ClassName:用于指定在请求页时将自动进行动态编译的页的类名,其值可以是任何有效的类名,并且可以包括类的完整命名空间;如果未指定该属性的值,则已编译页的类名将基于页的文件名
- CodeBehind:指的代码隐藏,表示将逻辑代码放在了WebForm1.aspx.cs中
- CodeFile:用于指定指向页引用的代码隐藏文件的路径。此属性与 Inherits 属性一起使用可以将代码隐藏源文件与网页相关联。该属性仅对编译的页有效
- CodePage:指示用于响应的编码方案的值,该值是一个用作编码方案 ID 的整数
- ContentType:将响应的 HTTP 内容类型定义为标准的 MIME 类型
- Description:提供该页的文本说明。ASP.NET 分析器忽略该值
- EnableSessionState:定义页的会话状态要求。如果启用了会话状态,则为 true;如果可以读取会话状态但不能进行更改,则为 ReadOnly;否则为 false。默认值为 true。这些值是不区分大小写的
- ErrorPage:定义在出现未处理页异常时用于重定向的目标 URL
- Inherits:定义供页继承的代码隐藏类。它可以是从 Page 类派生的任何类。用来设置页面与后台代码中相关联的类,因为页面最终也要被系统解释成一个类,所以页面和后台代码类的关系是继承关系。所以,Inherits 属性设置的是被继承的类。
- Src:指定包含链接到页的代码的源文件的路径。在链接的源文件中,可以选择将页的编程逻辑包含在类中或代码声明块中
@Master 指令
@Master 指令用于指示当前页面标识为 ASP.NET 母版页。简单地说,@Master 指令用于创建母版页。在使用@Master指令时,要指定和站点上的内容页面一起使用的模板页面的属性,内容页面 ( 使用 @Page 指令创建 ) 可以继承母版页上的所有内容。@Master 指令与 @Page 指令类似,但是它的属性要比 @Page 指令的属性少。创建一个母版页时,生成的 @Master 指令的代码如下:<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.master.cs"Inherits="WorkTest.SiteMaster" %>
@MasterType 指令
@MasterType 指令把一个类名关联到 ASP.NET 页面,以获取特定母版页中包含的强类型化的引用或成员。@MasterType 指令支持 TypeName 和 VirtualPath 两个属性。TypeName 属性:设置从中获取强类型化的引用或成员的派生类的名称。VirtualPath 属性:设置从中检索强类型化的引用或成员的页面地址。如下代码简单演示了 @MasterType 指令的使用:<%@ MasterType VirtualPath="~/MyWork.master" %>
@Import 指令
@Import 指令在页面或用户控件中显式地引入一个命名空间,以便所有已定义类型可以在页面访问,而不必使用完全限定名。例如,创建 ASP.NET 中 DataSet 类的实例时可以导入System.Data 命名空间,也可以使用完全限定名。使用完全限定名的代码如下:System.Data.DataSet ds = new System.Data.DataSet();
@Import 指令可以在页面主体中多次使用,它相当于 C# 中的 using 语句。如下所示为它的简单例子:<%@ Import Namespace="System.Data" %>
@Implements 指令
指令@Implements 指令允许在页面或用户控件中实现一个 .NET Framework 接口,该指令只支持 Interface 属性。Interface 属性直接指定 .NET Framework 接口。当 ASP.NET 页面或用户控件实现接口时,可以直接访问其中所有的方法和事件。如下所示是使用 @Implements 指令的例子:<%@ Implements Interface="System.Web.UI.IValidator" %>
@Reference 指令
@Reference 指令用来识别当前页面在运行时应该动态编译和链接的页面或用户控件。该指令在跨页通信方面发挥着重大作用,可以通过它来创建用户控件的强类型实例。@Reference 指令包含 3 个属性:Page、Control 和 VirtualPath,并可以多次出现在页面中。
● Page 属性:该属性用于指向某个“.aspx”源文件。
● Control 属性:该属性包含“.ascx”用户控件的路径。
● VirtualPath 属性:设置从中引用活动页面的页面或用户控件的位置。
@Assembly 指令
@Assembly 指令将程序集引入到当前页面或用户控件中,以便它所包含的类和接口能够适用于页面中的代码。@Assembly 指令支持 Name 和 Src 两个属性。
● Name 属性:允许指定用于关联页面文件的程序集名称。程序集名称应只包含文件名, 不包含文件的扩展名。 假设文件是 MyAssembly.vb, 那 么 Name 属性的值是MyAssembly。
● Src 属性:允许指定编译时所使用的程序集文件源。
@OutputCache 指令
@OutputCache 指令对页面或用户控件在服务器上如何输出高速缓存进行控制。该指令的常用属性
Duration: ASP.NET 页面或用户控件高速缓存的持续时间。单位为秒
CacheProfile: 允许使用集中式方法管理应用程序的调整缓存配置文件。该属性用于指定在 Web.config 文件中详细说明的调整缓存配置文件名
Location :位置枚举值,只对“.aspx”页面有效,不能用于用户控件。其值包括 Any( 默认值 )、Client、Downstream、None、Server 和 ServerAndClient
NoStore: 指定是否随页面发送没有存储的标题
Shared: 指定用户控件的输出是否可以在多个页面中共享。默认值为 false
SqlDependency: 支持页面使用 SQL Server 高速缓存禁用功能
VeryByControl:用分号分隔开的字符串列表,用于改变用户控件的输出高速缓存
VeryByParam: 用分号分隔开的字符串列表,用于改变输出高速缓存
VeryByCustom: 一个字符串,指定定制的输出高速缓存需求
VerByHeader: 用分号分隔开的 HTTP 标题列表,用于改变输出高速缓存
@PreviousPageType 指令
@PreviousPageType 指令用于指定跨页面的传送过程起始于哪个页面。@PreviousPageType是一个新指令,用于处理ASP.NET提供的跨页面传送新功能。这个简单的指令只包含两个属性:TypeName 和 VirtualPath。
● TypeName 属性:设置回送时派生类的名称。
● VirtualPath 属性:设置回送时所传送页面的地址。
注意!
在前面介绍的指令中,除了@Page、@Control、@Master、@MasterType和@PreviousPageType外,所有指令都可以在页面和控件中声明。@Page 和 @Control 是互斥的:@Page 只能用在“.aspx”文件中;@Control 只能用在“.ascx”文件中。
body标签
form标签
- runat='server' :将控件设置为服务器端,默认是客户端的。 无runat server属性的标签直接写入Response;有runat server属性的标签,将被转换为HtmlContrl控件加入到ASP.NET自带的控件集合中。当写一个id="abc"的div,如果有runat server属性,在你的aspx.cs文件中直接可以使用abc.XXX来操作这个对象,而没有runat server的话,在cs中是没有这个对象的。以上说的是asp.net中的html控件,asp控件只能runat server,因为他们不是直接和html对应的。
- action='#':指定处理表单数据的URL地址
- method='post':表示数据的传递方式,常用的两种传递方式。get默认值。如果不设置method属性则默认就是该值 请求参数会拼接在URL后边 url的长度有限制 4K。post 浏览器会将数据放到http请求消息体中,请求参数无限制的比较安全。
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %><!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server"><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title></title>
</head>
<body><form id="form1" runat="server" method="get"><div></div></form>
</body>
</html>
http://www.tup.tsinghua.edu.cn/upload/books/yz/071371-01.pdf