来源:http://www.cnblogs.com/zhuisha/archive/2008/07/02/1234222.html
ASP.NET中的指令:
@Page指令:
@Page指令只能在.aspx页中使用.如果在其他页面中使用会发生编译错误.
@Page指令的属性的列表:
用于页面编译的属性:
属性 |
描述 |
ClassName |
规定在页被请求时将被动态编译的类的名称,必须是一个没有名称空间信息的类名. |
CodeFile |
指明当前页的代码隐藏类的路径,该类的源文件必须部署到Web服务器.ASP.net 1.1中不支持该属性. |
CodeBehind |
Visual Studio 2003使用的属性,指出当前页的代码隐藏类的属性,该类的源文件将被编译成一个可部署的程序集. |
CodeFileBase |
允许指定一个页的祖父类,ASP,NET使用该属性中的信息来确定代码文件类的父类.ASP.NET 1.X没有该属性. |
CompilationMode |
指出是否应当在运行时对该页进行编译.ASP,NET 1.X没有该属性 |
CompilerOptions |
一系列用来编译页的编译命令开关. |
Debug |
指明是否应当用调试符号进行编译. |
Explict |
指明是否应当在Visual Basic Option Explicit模式设置为On时对页进行编译.Option Explicit强制程序员显式的声明所有的变量,如果选用的语言不是Visual Basic则可忽略此项. |
Inherits |
定义页要继承的基类,这可以是从Page派生而来的任何类. |
Language |
指出在编译内联代码块和页的<script>节中出现的所有代码时所使用的语言,默认的语言是Visual Basic .NET |
MasterPageFile |
指出当前的母版页.ASP.NET 1.x没有该属性. |
Src |
指出一个源文件(其中包含用Inherits属性规定的基类的实现.).Visual Studio .NET和其他快速开发设计人员不使用该属性. |
Strict |
指明是否在Visual Basic Open Strict模式设置为On的情况下编译页,Open Strict模式启用时只允许类型安全的转换,并禁止可能丢失数据的隐式类型转换,如果页使用的不是VB则可忽略此项. |
Ttace |
一个bool值,指定是否应跟踪,如果跟踪启用,则把额外的信息添加到页的输出中,默认值为false. |
TraceMode |
指出在跟踪功能被启用时,如何显示页的跟踪消息.可能值是SortByTime和SortByCategory.跟踪被启用时默认值是SortByTime. |
WarningLevel |
指出编译器的警告级别,到达这个级别时希望编译器终止对该页的编译.可能的值是0~4 |
用于页行为的属性:
属性 |
描述 |
AspCompat |
一个布尔属性,true:允许页在一个STA(single-threaded apartment单线程套间)线程上执行.该设置使页能够调用com+ 1.0组件,以及Visual Basic 6.0开发的要求访问非托管内置对象的组建 |
Async |
True:生成的页面派生于IHttpAsyncHandler.而不是让IHttpHandler将一些内置的异步功能添加到该页.ASP.NET 1.X没有该属性. |
AutoEventWireup |
指出是否启用页事件.默认为true. VS.NET开发的页默认把该属性设置为false,因而事件单独关联到处理程序. |
Buffer |
是否启用Http相应缓冲,默认为true. |
Description |
提供页的文本描述,ASP.NET页解释器忽略该属性,仅用于文档目的. |
EnableSessionState |
定义页当如何处理会话数据. true:可读写会话数据. false:应用程序不可读写会话数据 readonly:可读取会话状态但是不可修改会话状态. |
EnableViewState |
是否应在页请求之间保持页面视图状态,视图状态是页调用上下文—一个保持页状态,可前后翻页的值集.默认情况下视图状态是启用的. |
EnableViewStateMac |
指出ASP.NET是否应当计算一个计算机特有的验证码并把它添加到该页的视图状态(除了Base64编码).属性中的Mac代表machine authentication check.(机器验证检查) true:在回发时ASP.NET将检测视图状态的验证码,确保它在客户机上没有篡改. |
ErrorPage |
定义目标URL,如果出现未处理的异常则自动重定向到该页. |
SmartNavigator |
指出该页是否支持IE 5.0以后的自动导航特征.智能导航允许在不丢失滚动位置和元素焦点的情况下对页进行刷新. |
Theme/StyleshteeTheme |
指出为该页选择的主题或样式表的名称.ASP.NET 1.X没有该属性. |
Transaction |
指出页是否支持事务或需要事务.可行的值为:Disabled, NonSupported, Supported,Required和RequiresNew.事务处理默认禁止. |
ValidateRequest |
指出是否要请求验证, true:则ASP.NET根据一个硬编码的潜在危险值的列表检查所有值的输入数据.该功能有助于减少页进行跨站点脚本攻击的风险.该属性的默认值为true.ASP.NET 1.X不支持该特性. |
@Page指令用于页面输出格式的属性:
属性 |
描述 |
ClientTarget |
指出ASP.NET服务器控件的目标浏览器属性. |
CodePage |
指出响应的代码页值.只有在使用一个代码页创建该页,而不是使用将运行该页的Web服务器的默认编码时,才设置该属性.在这种情况下,把该属性设置为开发机器的代码页.一个代码页是一个字符集,其中包括数字,字符和其他符号,每种语言代码页都不同. |
ContentType |
将响应的内同定义为标准的MIME类型.支持任何有效的HTTP内容类型字符串. |
Culture |
指明页的文化设置,文化信息包括编写和排序系统,日历以及日期和货币的格式. |
LCID |
一个32位值定义的地址标识符.默认情况下,ASP.NET使用WEB服务器的地址. |
ResponseEncoding |
指出页的字符编码.该值用来设置内容类型HTTP头部,在内部ASP.NET将所有的字符串处理为UNICODE. |
UICulture |
指定资源管理器在运行时用来检查文化特用的资源的默认文化名. |
@Assembly指令:
@Assembly指令将一个程序集连接到该页,使其类和接口可以在该页上使用.当ASP.NET编译该页时,默认的连接几个程序集.因此,只有在连接到一个非默认链接的程序集是,才应该求助该指令.下表列出了自动提供给编译器的.NET程序集:
程序集文件名 |
属性 |
Mscorlib.dll |
提供.net framework的核心功能包括类型,AppDomain和运行时服务 |
System.dll |
提供另一组系统服务,包括正则表达式,编译,本地方法,I/O和互联网 |
System.Configuration.dll |
定义读写配置数据的类,ASP.NET 1.X没有包括该程序集. |
System.Data.dll |
定义数据容器和数据访问类,包括整个ADO.NET |
System.Drawing.dll |
实现GDI+属性. |
System.EnterpriseServices.dll |
提供允许被服务的组建和COM+交互的类. |
System.Web.dll |
该程序集实现ASP.NET的核心服务,控件和类. |
System.Web.Mobile.dll |
该程序集实现核心的ASP.NET移动服务,控件和类,如果安装的是1.x版本则不包括该程序集. |
System.Xml.dll |
实现.NET FeameWork XML特征 |
除此之外,ASP.NET还会吧Bin目录下面的所有的程序集连接到当前页
注:通过编辑machine.config文件中设置的机器级别的设置的配定值可以更改每个应用程序的程序集列表.为了防止把bin目录中存在的所有程序集都链接到页,可从根配置文件夹中删除以下代码.<add assembly=”*”/>
为了把一个所需的程序集链接到页可使用以下语法:
<%@ Assembly Name=”AssemblyName”%>
<%@ Assembly Src =”assembly_code.cs”%>
Assembly指令支持两个互斥的属性:Name和Src. Name指明要连接到页的程序集的名称.该名称不包括路径和扩展名.Src指明源文件的路径,以动态编译和链接该页,
@Import指令
@Import指令将指定的命名控件链接到页面,以便可以从页中访问所有已定义的类型.而不必规定完全限定的名字.
例如:在使用@Import之前你需要通过如下代码来创建一个DataSet:
System.Data.DataSet ds = new System.Data.DataSet();
然而在导入System.Data命名空间后你可以简单的通过如下代码来进行编码:
DataSet ds = new DataSet();
@Import指令的用法如下:<%@Import namespace=”Value”%>
注意:@Import指令仅仅只帮助编译器解析类名而不会自动的链接所需的应用程序集.程序集的加载和需要@Assembly指令.程序集和命名空间虽然经常重名,但是那纯属巧合.
@Implements
该指令指出当前页实现指定的.NET FrameWork接口,在ASP.NET页面中实现接口时,要在<script>节声明所必须的方法和属性. @Implements指令的语法如下,<@Implements Interface =“Interface Name”>如果需要实现多个接口则声明多次,如果要吧所有的页的逻辑放到代码文件中就不要用该指令,而直接在隐藏类中使用实现该接口.
@Reference指令,
@Reference指令可以在页面中出现多次,并且有两个互斥的属性Page和Control.这两个属性都包括源文件的路径.
Page属性指向一个aspx文件而Control属性指向一个ascx控件文件.从而使引用页能够以编程的方式来访问源文件中特定的类.