页面指令 用于通知编译器在编译该页面时做出什么样的处理方式, 欢聚换来讲, 页面指令指定了执行该页面的运行时环境, 当编译器处理应用程序时, 可以通过这些指令来让编译器做特定的处理; 在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 文件夹中的源文件.
005. asp.net页面常用指令的更多相关文章
-
C# asp.net页面常用语法,页面包含
搞.net开发这么多年,知道和用过包含include指令吗? <%@ Page Language="C#" AutoEventWireup="true" ...
-
aspx页面@Page指令解析
@Page指令位于每个ASP.NET页面的顶部,告诉ASP.NET这个具体页面使用什么属性,以及该页面继承的用户控件.ASP.NET页面@Page指令属性有:AspCompat.Async.Async ...
-
ASP.NET页面支持的指令
页面的处理指令 页面指令的处理用于配置执行该页面的运行时环境.在ASP.NET中,指令可以位于页面的任何位置,但良好且常见的习惯是将其置于文件的开始部分.除此,页面指令的名称是不区分大小写的,且指令的 ...
-
(2)ASP.NET 页面指令
页面指令 一共有12个指令,这些指令用来控制APS.NET页面的行为. Assembly,Control,Implements,Import,Master,MasterTpye,OutputCache ...
-
ASP.NET页面传值不使用QueryString
ASP.NET页面传值不使用QueryString Asp.net中的页面传值方法: 1 Url传值 特点:主要优点是实现起来非常简单,然而它的缺点是传递的值是会显示在浏览器的地址 ...
-
Asp.net页面间传值方式汇总
七种传值方式,分别是:URL传值,Session传值,Cookie传值,Server.Transfer传值,Application传值,利用某些控件的PostBackUrl属性和使用@Previous ...
-
ASP.NET页面间传值的几种方式
ASP.NET页面间传值的几种方式 1.使用QueryString 使用QuerySting在页面间传递值已经是一种很老的机制了,这种方法的主要优点是实现起来非常简单,然而它的缺点是传递的值是会显示在 ...
-
ASP.net 页面生命周期
ASP.NET 页面生命周期 Page_Preinit(); 在页初始化开始时发生 Page_Init(); 在所有控件初始化且应用外观设置后引发 Page_InitComplete(); 在页初始化 ...
-
linux常用指令
整理下来的linux常用指令 mount [-t 文件系统] 设备文件名 挂载点挂载命令,一般用于在挂载ISO,或者其他比如U盘等设备时使用,[-t iso9660]为固定格式,可写可不写,非必写项. ...
随机推荐
-
OUTLOOK 发生错误0x8004010D
问题: outlook 2003 在接收邮件时报错: “正在接收”报告了错误(0x8004010D):“在包含您的数据文件的驱动器上,磁盘空间不足.请清空“已删除邮件”文件夹或删除某些文件以释放 ...
-
SQL Server中解决死锁
SQL Server中解决死锁的新方法介绍 数据库操作的死锁是不可避免的,本文并不打算讨论死锁如何产生,重点在于解决死锁,通过SQL Server 2005, 现在似乎有了一种新的解决办法. 将下面的 ...
-
(续)检测到有潜在危险的 Request.Form 值
继续昨天的问题“检测到有潜在危险的 Request.Form 值”,前面说如果不想取消数据验证那怎么避免这个问题. 既然是数据验证到危险值然后报错那么我们可不可以在验证的中间做一个处理让他不报错,比如 ...
-
poj1066 Jugs
poj1066 Jugs http://poj.org/problem?id=1606 解题思路:本题可以用数学方法解得,最易理解,常规的解法是搜索.直接用接近模拟的广度优先搜索即可过. 给两个容器, ...
-
Linux共享wifi给Android手机
亲測可行,測试系统:Deepin2014,Ubuntu也一样.步骤很easy. 1.卸载hostapd,sudo apt-get remove hostapd(假设原来装过的话卸载,由于某些版本号不支 ...
-
Python-Tkinter的Entry详解
#Tkinter教程之Entry篇 #Entry用来输入单行文本 '''1.第一个Entry程序''' from Tkinter import * root = Tk() Entry(root,tex ...
-
Chapter 2 User Authentication, Authorization, and Security(5):使用固定服务器角色
原文出处:http://blog.csdn.net/dba_huangzj/article/details/38844999,专题目录:http://blog.csdn.net/dba_huangzj ...
-
新版MATERIAL DESIGN 官方动效指南(三)
运动 Material design 的动效会被类似真实世界中的力的影响,类似重力. 物体在屏幕内的运动 屏幕内物体在两点之间的运动,是沿着一条自然.凹陷的弧线.屏幕上所有的运动都可以使用标准曲线. ...
-
CMDB资产管理系统开发【day27】:理解RESTful架构
理解RESTful架构 越来越多的人开始意识到,网站即软件,而且是一种新型的软件. 这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(hig ...
-
async/await学习笔记
async/await 的目的是简化使用 promises 的写法. 让我们来看看下面的例子: // 一个标准的 JavaScript 函数 function getNumber1() { r ...