005. asp.net页面常用指令
页面指令 用于通知编译器在编译该页面时做出什么样的处理方式, 欢聚换来讲, 页面指令指定了执行该页面的运行时环境, 当编译器处理应用程序时, 可以通过这些指令来让编译器做特定的处理; 在asp.net中,指令可以位于页面的任何位置,但一般都位于页面的前几行, 一般都是<%@...%>这样的代码, 这几行就定义了asp.net网页分析器和编译器如何执行编译该页面;页面指令的名称是不区分大小写的,且指令的属性值也不必加引号; 在aspx文件中常见的页面指令有如下几种:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ |
Page Language="C#" |
AutoEventWireup="true" |
CodeFile="Default.aspx.cs" |
Inherits="_Default" |
%> |
页面指令标识符 |
指定页面编译时使用的语言 |
页面编译时事件是否自动绑定 |
关联后台的代码文件 |
包含当前aspx页面中事件处理程序的隐藏类文件 |
页面中结束标识符 |
- page指令是asp.net中最重要也是最常用的指令:
定义asp.net网页分析器和编译器使用的的特定页面的属性, 从而影响页面的创建过程, 在单个页面中只能有一个这样的指令. 在单文件页中, HTML标记元素、服务器端元素以及事件处理代码全都位于同一个 .aspx 文件中.当该页进行编译时, 编译器将生成和编译一个从 Page 基类派生或从使用 @ Page 指令Inherits 属性 指定的 自定义基类派生的新类, 在该新类中包含 .aspx 页中控件的声明以及事件处理程序和其他自定义代码.
page常见的属性:
Language指定在对页中的所有内联呈现(<% %> 和 <%= %>)和代码声明块进行编译时使用的语言.值可以表示任何 .NET Framework 支持的语言, 包括 Visual Basic、C# 或 JScript.每页只能使用和指定一种语言.
AutoEventWireup="true" 指示页面的事件是否自动绑定.如果启用了事件的自动绑定, 则为true; 否则为false.默认值为true.
CodeFile="Default.aspx.cs"指定指向页引用的代码隐藏文件的路径.此属性与 Inherits 属性一起使用可以将代码隐藏源文件与网页相关联.此属性仅对编译的页有效.
Inherits="_Default" 指定基类派生的新类. 例如, 如果在应用程序的根目录中创建一个名为 Default 的新 ASP.NET 网页, 则随后将从 Page 类派生一个名为 Default.aspx.cs 的新类.对于应用程序子文件夹中的页, 将使用子文件夹名称作为生成的类的一部分.生成的类中包含 .aspx 页中的控件的声明以及您的事件处理程序和其他自定义代码.简单来说就是:指定与前端网页文件相关联的后台事件处理类文件
Buffer确定是否启用HTTP响应缓冲.如果启用页面缓冲为true; 否则为false.默认为true.
StyleSheetTheme指定在页上使用的有效主题标识符.如果设置了 StyleSheetTheme 属性, 则单独的控件可以重写主题中包含的样式设置.这样, 主题可以提供站点的整体外观, 同时, 利用 StyleSheetTheme 属性中包含的设置可以自定义页及其各个控件的特定设置.
Theme指定在页上使用的有效主题标识符.如果设置 Theme 属性时没有使用 StyleSheetTheme 属性, 则将重写控件上的单独的样式设置, 允许您创建统一而一致的页外观.
Title指定在响应的 HTML <title> 标记中呈现的页的标题.也可以通过编程方式将标题作为页的属性来访问;
Trace指示是否启用跟踪.如果启用了跟踪, 则为 true; 否则为 false.默认值为 false.设置断点是页面调试过程中的常用手段, 除此之外, 还可以通过查看页面的跟踪信息进行错误排查以及性能优化.ASP.NET中启用页面跟踪非常方便, 只需在Page指令中加入Trace="True"属性即可:
<%@ Page Language="C#" Trace="true"%>
通过在页面代码中调用Trace.Write()或Trace.Warn()方法便可将指定内容写入跟踪信息中的"TraceInformation"节.就算页面发生了错误, 跟踪信息还是会显示出来, 并且在发布应用程序时无需删除相关的跟踪代码, 只需从Page指令中移除Trace属性即可.
Debug
指示是否应使用调试符号来编译页面. 如果应使用调试符号编译该页, 则为 true; 否则为 false. 由于此设置影响性能, 因此只应在开发期间将此特性设置为 true. 当使用VS2010新建项目的第一次运行, 会弹出一个对话框, 提示是否修改配置文件来进行调试, 点确定后会在web.config中添加一行 <compilation debug="true"/>
MasterPageFile 启用的母版页路径;
2. <%@ Implements Interface="" %> 接口指令. 指示当前的ASP.NET应用程序文件(网页,用户控件或母版页)实现指定的.NET Framework接口.
其中interface属性用来指定要在页或用户控件中实现的接口.
当在 Web 窗体页中实现接口时,您可以在代码声明块中 <script> 元素的开始标记和结束标记之间创建其事件, 方法和属性. 但不能使用该指令在代码隐藏文件(*.aspx.cs)中实现接口.
3. <%@ Import Namespace="value" %> 导入指令. 该指令用于将空间显示导入到ASP.NET应用程序文件中,并且导入该命名空间的所有类和接口. 导入的命名空间可以是NET.Framework类库的一部分,也可以是用户定义的命名空间的一部分.
Import指令不能有多个namespace的属性,如果要导入多个命名空间,要使用多个Import指令. 大部分常用的命名空间在默认状态下自动导入, 不需要手动添加. 所谓的命名空间就是将许多功能类似的类组成一个逻辑单元, 比如在system.IO命名空间下包含了所有输入输出的操作类.
4. <%@ OutputCache %> 缓存指令, 以声明的方式控制 ASP.NET 页或页中包含的用户控件的输出缓存策略. 常用属性:
Duration 定义页或用户空间缓存的时间(秒), 在页或用户控件上设置该特性为来自对象的 HTTP 响应建立了一个过期策略,并将自动缓存页或用户控件输出
Location 指定缓存的位置, 枚举值, 有以下几种:
Any(默认)输出缓存可位于产生请求的浏览器客户端、参与请求的代理服务器(或任何其他服务器)或处理请求的服务器上.
client 输出缓存位于产生请求的浏览器客户端上
server 输出缓存位于处理请求的 Web 服务器上
None 禁用输出缓存
VaryByParam 分号分隔的字符串列表,用于使输出缓存发生改变. 默认情况下,这些字符串对应于使用 GET 方法特性发送的查询字符串值,或者使用 POST 方法发送的参数. 将该特性设置为多个参数时,对于每个指定参数组合,输出缓存都包含一个不同版本的请求文档. 可能的值包括 none、星号 (*) 以及任何有效的查询字符串或 POST 参数名称. 注意: 在 ASP.NET 页和用户控件上使用 @ OutputCache 指令时,需要此特性或 VaryByControl 特性. 如果没有包含它,则发生分析器错误. 如果不希望通过指定参数来改变缓存内容,请将值设置为 none. 如果希望通过所有的参数值改变输出缓存,应特性设置为星号 (*)
下面的代码示例演示如何设置页或用户控件进行输出缓存的持续时间.
<%@ OutputCache Duration="100" VaryByParam="none" %>
下面的代码示例演示如何指示输出缓存按页或用户控件的位置对它们进行缓存,并根据窗体的 POST 方法或查询字符串对窗体参数进行计数. 每个收到的具有不同位置或计数参数(或两者)的 HTTP 请求都进行 10 秒的缓存处理. 带有相同参数值的任何后继请求都将从缓存中得到满足,直至超过输入的缓存期.
<%@ OutputCache Duration="10" VaryByParam="location;count" %>
5. <%@ Register %>
创建标记前缀和自定义(用户)控件之间的关联,这为开发人员提供了一种在 ASP.NET 应用程序文件(包括网页、用户控件和母版页)中引用自定义控件的简明方法.
有以下三种写法:
<%@ Register tagprefix="tagprefix" namespace="namespace" assembly="assembly" %>
<%@ Register tagprefix="tagprefix" namespace="namespace" %>
<%@ Register tagprefix="tagprefix" tagname="tagname" src="pathname" %>
tagprefix一个任意别名,提供对包含指令的文件中所使用的标记的命名空间的短引用.
namespace正在注册的自定义控件的命名空间.
tagname与类关联的任意别名. 此特性只用于用户控件.
src 与 tagname="tagname" 对关联的 ASP.NET 用户控件 文件的位置特性值, 既可以是相对路径,也可以是从应用程序的根目录到用户控件源文件的绝对路径. 为方便使用, 建议使用相对路径.
assembly 与 tagprefix特性关联的命名空间所驻留的程序集. 程序集名称不能包括文件扩展名. assembly attribute is missing, the ASP.NET parser assumes that there is source code in the App_Code folder of the application." id="mt4">另请注意,如果 assembly 特性缺失,ASP.NET 分析器会假定应用程序的 App_Code 文件夹中存在源代码. 如果您希望在页面上注册控件的源代码而不对其进行编译,请将源代码放在 App_Code 文件夹中. ASP.NET 在运行时动态编译 App_Code 文件夹中的源文件.