出处:http://blog.youkuaiyun.com/angtoutianwai/article/details/8083146
http://wenle67.blog.163.com/blog/static/102153932200906115544970/
(一)ASP.NET的Master指令
在母板页中, @ Page 被@ Master取代。@Master指令非常类似于@Page指令,但@Master指令用于master页面(.master)。
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>
(二)ASP.NET的Control指令
@Control指令类似于@Page指令,但@Control指令是在构建ASP.NET用户控件时使用的。@Control指令允许定义用户控件要继承的属性。这些属性值会在解析和编译页面时赋予用户控件。@Control指令的可用属性比@Page指令少,但其中有许多都可以在构建用户控件时根据需要进行修改。
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs" Inherits="WebUserControl" %>
(三)ASP.NET的Register指令
当在宿主页面调用用户控件时, @ Register
表示对用户控件的注册。
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register src="WebUserControl.ascx" tagname="WebUserControl" tagprefix="uc1" %>
@Register指令把别名与名称空间和类名关联起来,作为定制服务器控件语法中的记号。把一个用户控件拖放到.aspx页面上时,就使用了@Register指令。把用户控件拖放到.aspx页面上后,Visual Studio就会在页面的顶部创建一个@Register指令。这样就在页面上注册了用户控件,就可以通过特定的名称在.aspx页面上访问该控件了。
@Register指令支持5个属性,如下所示。
属 性 说 明
Assembly 与TagPrefix关联的程序Namespace 与TagPrefix关联的名称空间
Src 用户控件的位置
TagName 与类名关联的别名
TagPrefix 与名称空间关联的别名
@register指令详细: <%@ Register tagprefix="tagprefix" Namespace="namespace" Assembly="assembly" %> <%@ Register tagprefix="tagprefix" Tagname="tagname" Src="pathname" %>
属性
-
tagprefix
- 与命名空间关联的别名。 tagname
- 与类关联的别名。 Namespace
- 与 tagprefix 关联的命名空间。 Src
- 与 tagprefix:tagname 对关联的声明性 用户控件文件的位置(相对的或绝对的)。 Assembly
-
与
tagprefix 关联的命名空间所驻留的程序集。
注意 程序集名称不包括文件扩展名。
备注
如果在页或用户控件中包含 @ Register 指令,则可以使用声明性自定义服务器控件语法为自定义服务器控件或用户控件布局。
在以下情况中,使用 @ Register 指令。
- 通过声明将自定义 ASP.NET 服务器控件添加到页或用户控件。
- 将声明性用户控件添加到页或用户控件。
对于声明性用户控件,请使用 tagname、tagprefix 和 src 属性。在页中声明控件时,前两个属性总是以冒号分隔对 (tagprefix:tagname) 的形式一起使用。src 属性值既可以是从应用程序根目录到用户控件源文件的相对路径,也可以是绝对路径。为方便使用,建议使用相对路径。例如,假设将所有应用程序用户控件文件存储在应用程序根目录的子目录 \usercontrol 下。要包括 usercontrol1.ascx 文件中的用户控件,请在 @ Register 指令中包含以下内容:
Src="~\usercontrol\usercontrol1.ascx"
代字号 (~) 表示应用程序的根目录。
注意 如果用户控件和包含该控件的页位于同一目录中,则 src 属性值应该为 .ascx 文件的文件名和扩展名。
当包含已经编译为 .dll 文件供应用程序使用的自定义服务器控件时,请将 tagprefix 与 Assembly 和Namespace 属性一起使用。如果没有包含 Namespace 属性,或者给该属性分配了一个空字符串,则会出现分析器错误。
警告 在开发自定义服务器控件时,必须将其包含在命名空间中。如果没有包含在命名空间中,则将无法从 ASP.NET 页中访问该控件。有关开发自定义 ASP.NET 服务器控件的更多信息,请参见 开发简单的 ASP.NET 服务器控件。
示例
以下代码片段使用 @ Register 指令声明服务器控件和用户控件的 tagprefix 和 tagname 别名。第一条指令将 MyTag
别名声明为驻留在 MyCompany:MyNameSpace
命名空间中的所有控件的标记前缀。第二条指令将 Acme:AdRotator
声明为文件 Adrotator.acscx 中用户控件的 tagprefix:tagname 对。然后,在窗体的自定义服务器控件语法中使用别名,为每个服务器控件插入一个实例。
<%@ Register Tagprefix="MyTag" Namespace="MyCompany:MyNameSpace" Assembly="MyAssembly" %> <%@ Register Tagprefix="Acme" Tagname="AdRotator" Src="AdRotator.ascx" %> <HTML> <body> <form runat="server"> <MyTag:MyControl id="Control1" runat="server" /><BR> <Acme:AdRotator file="myads.xml" runat="server" /> </form> </body> </HTML>
(四)ASP.NET的PreviousPageType指令
@PreviousPageType指令是一个新指令,用于处理ASP.NET 提供的跨页面传送新功能。 @PreviousPageType允许ASP.NET页面处理应用程序中另一个页面的回送信息。这个简单的指令只包含两个属性:TypeName和VirtualPath。
TypeName:设置回送时的派生类的名称。
VirtualPath:设置回送时所传送页面的地址。
(五)ASP.NET的MasterType指令
@MasterType把类名与页面关联起来,获得包含在特定master页面中的强类型化的引用或成员。这个指令支持以下两个属性。
TypeName:设置从中获得强类型化的引用或成员的派生类的名称。
VirtualPath:设置从中检索这些强类型化的引用或成员的页面地址。
举例<%@ MasterType VirtualPath="~/Wrox.master" %>
ASP.NET的OutPutCache指令
@OutPutCache控制页面或用户控件的输出高速缓存策略,这个指令支持10个属性 。
下面是使用@OutputCache指令的一个例子:
<%@ OutputCache Duration="180" VaryByParam="None" %>
Duration属性指定页面存储在系统高速缓存中的时间(单位为秒)。