<%@ Page%> page指令属性

ASP.NET 专栏收录该内容
28 篇文章 0 订阅

以前只知道会用就行,今天boss让我去理解一下<%@ Page%>里面的各个属性的用法,于是就有了这篇东凑西凑的文章!

<%@ Page%>是页面指令,作用于当前页面,指定使用语言、代码页等等。

eg:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Welcomewold.aspx.cs" Inherits="Welcomewold" %>

页面指令:

ASP.NET 页面中的前几行,一般是%@...%这样的代码,这叫做页面指令。用来定义ASP.NET页分析器和编译器使用的特定于该页得一些定义。在.aspx文件中使用的页面指令一般有以下几种:

(1)Language: 指定页中的所有内联呈现(<%%><%=%>)和代码声名块进行编译时使用的语言。可以是任何.NET Framework支持的语言。请切记:每页只能使用和指定一种语言,但一个工程可以使用多种语言。

(2)AutoEventWireup : 设置页面的事件是否自动绑定。ASP.NET 2.0默认值为trueASP.NET 1.0ASP.NET 1.1默认为falseASP.NET页触发的事件,如Init, Load,PreRender等,在默认情况下,可以使用“Page_事件名称”的命名约定将页事件绑定到相应的方法,页面编译时,ASP.NET将查找基础此命名约定的方法,并自动执行该方法的代码。例如,页的Load事件默认创建名为Page_Load的方法处理程序。

(3)CodeFile:指定指向页引用的代码隐藏文件的路径。此属性与Inherits属性一起使用可以将代码隐藏源文件与网页相关联。此属性仅对编译的页有效。

(4)Inherits:与CodeFile属性(包含指向代码隐藏类的源文件的路径)一起使用来定义供页继承的任何从Page类派生的代码隐藏类。

(5)session:session="false",页面不保存session。

(6)contentType:contentType="text/html; charset=UTF-8" :指定编码方式。

(7)StyleSheetTheme:此属性在.NET Framework 2.0 版中是新增的。 获取或设置应用于此页的样式表的名称;

(8)EnableTheming:获取或设置一个值,该值指示是否对此控件应用主题。EnableTheming属性指示是否为指定的控件启用主题。当 EnableTheming 属性为 true 时,将在应用程序的主题目录中搜索要应用的控件外观。如果主题目录中不存在用于特定控件的外观,则不应用外观。当 EnableTheming 属性为 false 时,将不会搜索主题目录,并且不会使用 SkinID 属性的内容。控件可以重写由其父控件或包含页设置的 EnableTheming 值。例如,如果父控件的 EnableTheming 属性设置为 false,您可以选择性地通过在各个子控件的基础上将 EnableTheming 属性设置为 true,将主题应用于包含在父级中的子控件。可在页、容器或控件级别启用主题。当在页级别或容器级别禁用主题时,会对页或容器包含的所有控件禁用主题。

(9)ValidateRequest:要阻止依赖于恶意输入字符串的黑客攻击,约束和验证用户输入是必不可少的。跨站点脚本攻击就是此类攻击的一个示例。其他类型的恶意数据或不需要的数据可以通过各种形式的输入在请求中传入。通过在应用程序中的较低级别限制允许通过的数据类型,就可以阻止不希望的事件,即使当使用代码的程序员没有恰当地使用合适的验证技术时也是如此。当请求验证检测到潜在的恶意客户端输入时,会引发此异常来中止请求处理。请求中止能够指示危害您的应用程序安全的企图,例如跨站点脚本攻击。强烈建议让您的应用程序显式地检查与请求中止有关的所有输入。不过,您也可以通过将 @ Page 指令中的 validateRequest 属性设置为 false 来禁用请求验证。

(10)其它总结

@Page指令位于每个ASP.NET页面的顶部,告诉ASP.NET这个具体页面使用什么属性,以及该页面继承的用户控件。ASP.NET页面@Page指令属性有:AspCompat、Async、AsyncTimeout、AutoEventWireup、Buffer、ClassName、ClientIDMode、CodeBehind、 CodeFile、CodeFileBaseClass、CodePage、CompilationMode 、ContentType、 CompilerOptions、Culture 、Debug、 EnableEventValidation、EnableSessionState、EnableTheming 、EnableViewState、 EnableViewStateMac 、ErrorPage 、Explicit、 Inherits、 Language、 LCID 、LinePragmas、MaintainScrollPositionOnPostback、 MasterPageFile、 MetaDescription 、MetaKeywords 、ResponseEncoding、Src、Strict、StylesheetTheme、Theme、Title、Trace 、TraceMode 、Transaction 、UICulture、 ValidateRequest、ViewStateEncryptionMode、ViewStateMode、WarningLevel。

      AspCompat通过设置页面在单线程单元中运行,使得ASP.NET页面能够访问传统的COM对象。ASP.NET页面默认是在多线程单元(MTA)中运行。当启用AspCompant模式时,设置ASP.NET在单线程单元(STA)中运行页面,以便它能够安全地与COM对象交互。AspCompat设置为true会影响性能。默认为false。

      Async使页面成为异步处理程序,即导致页使用IHttpAsyncHandler的实现来处理请求,默认为false。

      AsyncTimeout定义在处理异步任务时使用的超时的时间间隔(以秒为单位)。默认为45秒。

      AutoEventWireup指示页面的事件是否自动绑定。如果启用了事件的自动绑定,则为true;否则为false。默认值为true。

      Buffer确定是否启用HTTP响应缓冲。如果启用页面缓冲为true;否则为false。默认为true。

      ClassName指定在请求该页面时将自动进行动态编译的页的类名。此值可以是任何有效的类名,并且可以包括类的完整命名空间。如果未指定该属性的值,则已编译的类名将基于页的文件名。其他页可以通过使用 @ Reference 指令来引用分配给第一页的类名。

      ClientTarget指示 ASP.NET 服务器控件应该为其呈现内容的目标用户代理(通常是 Web 浏览器,例如 Microsoft Internet Explorer)。该值可以是应用程序配置文件的 <clientTarget> 节中定义的任何有效别名。

      CodeBehind指定包含与页关联的类的已编译文件的名称。该属性不能在运行时使用。提供此属性是为了与以前版本的 ASP.NET 的兼容,以实现代码隐藏功能。在 ASP.NET 2.0 版中,应改用 CodeFile 属性指定该源文件的名称,同时使用 Inherits 属性指定该类的完全限定名称。

      CodeFile指定指向页引用的代码隐藏文件的路径。此属性与 Inherits 属性一起使用可以将代码隐藏源文件与网页相关联。此属性仅对编译的页有效。

      CodeFileBaseClass指定页的基类及其关联的代码隐藏类的路径。此属性是可选的,但如果使用此属性,则必须同时使用 CodeFile 属性。如果希望实现以下共享方案,可使用该属性:在该共享方案中,您在基类中定义通用字段(可以选择性地定义关联事件)以引用在网页中声明的控件。出于 ASP.NET 代码生成模型的缘故,如果您在基类中定义字段时没有使用该属性,则编译时将为在网页中(在单独的分部类存根中)声明的控件生成新的成员定义,而您希望的方案将无法生效。但是,如果您使用 CodeFileBaseClass 属性将基类与页相关联,并且您的分部类(其名称分配给 Inherits 属性,并且其源文件由 CodeFile 属性引用)是从该基类继承的,则该基类中的字段在代码生成之后将能够引用页上的控件。

      CodePage指示用于响应的编码方案的值。该值是一个用作编码方案 ID 的整数。有关可能的 CodePage ID 的列表,请参见 Encoding 类。

     CompilationMode设置是否应使用指定多个枚举选项之一的字符串来编译页。默认值为 Always,因此,默认情况下编译 .aspx 页。包含用于编译页的编译器选项的字符串。在 C# 和 Visual Basic 中,这是编译器命令行开关的序列。有关编译器选项的更多信息,请参见 C# 编译器选项或 Visual Basic 编译器。

     ContentType将响应的 HTTP 内容类型定义为标准的 MIME 类型。

     CompilerOptions支持任何有效的 HTTP 内容类型字符串。有关可能值的列表,请在 MSDN Library 中搜索 MIME。Culture指示页的区域性设置。该属性的值必须是有效的区域性 ID。注意,LCID 和 Culture 属性是互相排斥的;如果使用了其中一个属性,就不能在同一页中使用另一个属性。

      Culture动态生成的类将设置此属性的值。此外,还可以通过编程方式或在 Web.config 文件的 globalization 元素(ASP.NET 设置架构) 中显式设置 Culture 属性的值。Culture 属性用于帮助本地化页内容。可以将其设置为任何有效的区域性 ID。例如,en-us 区域性 ID 将页设置为美国英语,而 fr 区域性 ID 将页设置为法语。还可以将该值设置为 auto,从而自动检测浏览器的首选语言并设置该语言。可以用默认值(如 auto:en-us)限定自动语言检测。

      Debug指示是否应使用调试符号编译该页。如果应使用调试符号编译该页,则为 true;否则为 false。由于此设置影响性能,因此只应在开发期间将此属性设置为 true。

      EnableEventValidation在回发方案中启用事件验证。如果验证事件,则为 true;否则为 false。默认值为 true。

      EnableSessionState定义页的会话状态要求。如果启用了会话状态,则为 true;如果可以读取会话状态但不能进行更改,则为 ReadOnly;否则为 false。默认值为 true。这些值是不区分大小写的。

      EnableTheming指示是否在页上使用主题。如果使用主题,则为 true;否则为 false。默认值为 true。

      EnableViewState指示是否在页请求之间保持视图状态。如果要保持视图状态,则为 true;否则为 false。默认值为 true。

      EnableViewStateMac指示当页从客户端回发时,ASP.NET 是否应该对页的视图状态运行计算机身份验证检查 (MAC)。如果应该对视图状态运行 MAC 检查,则为 true;否则为 false。默认值为 false。视图状态 MAC 是隐藏变量的加密版本,当某页被发送到浏览器时,该页的视图状态永久保持到该变量中。当您将此属性设置为 true 时,将检查加密的视图状态以验证它在客户端未被篡改。注意,将此属性设置为 true 会影响性能,因为在页的每次往返行程中,都必须加密和解密变量值。

      ErrorPage定义在出现未处理页异常时用于重定向的目标 URL。

      Explicit确定是否使用 Visual Basic Option Explicit 模式来编译页。如果启用了 Visual Basic 显式编译选项,且所有变量必须使用 Dim、Private、Public 或 ReDim 语句来声明,则为 true;否则为 false。默认值为 false。除了 Visual Basic,所有其他语言都忽略该属性。此外,该选项在 Machine.config 配置文件中被设置为 true。

Inherits定义供页继承的代码隐藏类。它可以是从 Page 类派生的任何类。它与 CodeFile 属性(包含指向代码隐藏类的源文件的路径)一起使用。

      Language指定在对页中的所有内联呈现(<% %> 和 <%= %>)和代码声明块进行编译时使用的语言。值可以表示任何 .NET Framework 支持的语言,包括 Visual Basic、C# 或 JScript。每页只能使用和指定一种语言。

LCID定义 Web 窗体页的区域设置标识符。区域设置标识符是一个 32 位值,该值唯一地定义某个区域设置。除非您使用该属性为 Web 窗体页指定不同的区域设置,否则 ASP.NET 使用 Web 服务器默认的区域设置。注意,LCID 和 Culture 属性是互相排斥的;如果使用了其中一个属性,就不能在同一页中使用另一个属性。

      LinePragmas确定运行库是否应在源代码中生成行杂注。这些是编译器选项,调试工具通常使用这些选项来标记源文件中的特定位置。如果应该生成行杂注,则为 true;否则为 false。

      MaintainScrollPositionOnPostback指示在回发后是否将用户返回到客户端浏览器中的同一位置。如果应该将用户返回到同一位置,则为 true;否则为 false。默认值为 false。开发人员可以通过设置 Web.config 文件的 <pages> 元素上的 maintainScrollPostitionOnPostback 属性(注意,此属性在配置文件中是区分大小写的),为所有页定义该属性。

MasterPageFile设置内容页的母版页或嵌套母版页的路径。支持相对路径和绝对路径。

     MetaDescription为ASP.NET4.0新增为页面的SEO优化,指定在响应的 HTML <Meta> 标记中呈现的页的描述。也可以通过编程方式将描述作为页的属性来访问。

     MetaKeywords也是ASP.NET4.0新增的为SEO优化,指定在响应的 HTML <Meta> 标记中呈现的页的Keywords。也可以通过编程方式将描述作为页的属性来访问。

     ResponseEncoding指示用于包含页内容的 HTTP 响应的编码方案的名称。分配给该属性的值是有效的编码名称。有关可能的编码名称的列表,请参见 Encoding 类。您也可以调用 GetEncodings 方法来获取可能的编码名称和 ID 的列表。

     Src指定包含链接到页的代码的源文件的路径。在链接的源文件中,可以选择将页的编程逻辑包含在类中或代码声明块中。可以使用 Src 属性将生成提供程序链接到页。有关更多信息,请参见 BuildProvider 类。另外,在低于 2.0 版的 ASP.NET 中,Src 属性是另一种将代码隐藏文件链接到页的方法。在 ASP.NET 2.0 中,将代码隐藏源文件链接到页的首选方法是使用 Inherits 属性来指定类,并使用 CodeFile 属性来指定该类的源文件的路径。

     Strict指示应使用 Visual Basic OptionStrict 模式来编译页。如果启用了 Option Strict,则为 true;否则为 false。默认值为 false。除了 Visual Basic,所有其他语言都忽略该属性。

     StyleSheetTheme指定在页上使用的有效主题标识符。如果设置了 StyleSheetTheme 属性,则单独的控件可以重写主题中包含的样式设置。这样,主题可以提供站点的整体外观,同时,利用 StyleSheetTheme 属性中包含的设置可以自定义页及其各个控件的特定设置。

      Theme指定在页上使用的有效主题标识符。如果设置 Theme 属性时没有使用 StyleSheetTheme 属性,则将重写控件上的单独的样式设置,允许您创建统一而一致的页外观。

     Title指定在响应的 HTML <title> 标记中呈现的页的标题。也可以通过编程方式将标题作为页的属性来访问。

     Trace指示是否启用跟踪。如果启用了跟踪,则为 true;否则为 false。默认值为 false。

     TraceMode指示当启用跟踪时如何为页显示跟踪消息。可能的值为 SortByTime 和 SortByCategory。当启用跟踪时,默认值为 SortByTime。

     Transaction指示在页上是否支持事务。可能的值有 Disabled、NotSupported、Supported、Required 和 RequiresNew。默认值为 Disabled。

     UICulture指定用于页的用户界面 (UI) 区域性设置。支持任何有效的 UI 区域性值。

     ValidateRequest指示是否应发生请求验证。如果为 true,请求验证将根据具有潜在危险的值的硬编码列表检查所有输入数据。如果出现匹配情况,将引发 HttpRequestValidationException 异常。默认值为 true。该功能在计算机配置文件 (Machine.config) 中启用。可以在应用程序配置文件 (Web.config) 中或在页上将该属性设置为 false 来禁用该功能。该功能有助于减少对简单页或 ASP.NET 应用程序进行跨站点脚本攻击的风险。如果应用程序不能正确验证用户输入,则可能会受到多种类型的格式错误的输入的攻击,包括跨站点脚本攻击和 Microsoft SQL Server 注入式攻击。应该仔细地评估应用程序中所有形式的输入,并确保对它们进行了正确地验证和编码,或者确保应用程序在处理数据或将信息发送回客户端之前已退出。除此之外,别无它法。

       ViewStateEncryptionMode使用三个可能的枚举值来确定如何加密视图状态:Auto、Always 或 Never。默认值为 Auto,表示如果单个控件请求进行加密,将加密视图状态。

       ViewStateMode这个属性可以单独设置控件的视图状态。在以前版本的 ASP.NET 中,控件的视图只有在 Page 的 ViewState 启用的前提下才可以单独控制。在 ASP.NET4.0 中,控件的视图状态可以单独设置了,也就是说,即使页面的视图状态没有启用,控件依然可以启用视图状态。

ViewStateMode 属性是个枚举值:InheritL:视图状态从父控件继承;Enabled:即使父控件的视图状态没有启用,也启用该控件的视图状态;Disabled:即使父控件的视图状态启用了,也禁用此控件的视图状态。

       WarningLevel指示您希望编译器将警告视为错误(从而中止对页进行编译)的编译器警告等级。可能的警告等级为 0 到 4。有关更多信息,请参见 WarningLevel 属性。

  • 2
    点赞
  • 2
    评论
  • 5
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值