ASP.NET/Page指令

维基教科书,自由的教学读本

ASP.NET页面除了标准HTML页面的内容,还有一些额外的特性。Page指令用于指出影响整个ASP.NET页面的特性。Page指令被包围在特殊的限定符内:

   <%@  %>

脚本块在标准HTML页面是常见的,但包含属性runat="server"是不寻常的,该属性指示ASP.NET这个脚本块包含服务器端代码:

   <script runat="server">
     ' ASP.NET page code goes here
     Sub Page_Load()
     End Sub
   </script>
  

form标签在HTML很常见,但在ASP.NET中包含属性runat="server"。

Page的属性[编辑]

Page指令 涵义
Async 指示页面是否以异步页的方式运行。默认值为 false。
AsyncTimeOut 定义在处理异步任务时使用的超时时间间隔(以秒为单位)。默认值为 45 秒。 该值必须是整数。此属性仅对Page.RegisterAsyncTask()方法有效。
AutoEventWireup 指示页的事件是否自动绑定。默认值为 true。ASP.NET页触发的事件,如Init, Load,PreRender等,在默认情况下,可以使用“Page_事件名称”的命名约定将页事件绑定到相应的方法,页面编译时,ASP.NET将查找基础此命名约定的方法,并自动执行该方法的代码。
CodeFile 页引用的代码隐藏文件的路径。仅对编译的页有效。
contentType contentType="text/html; charset=UTF-8" :指定编码方式。
EnableEventValidation 如果为true,将验证POST请求,尝试阻止恶意创建的请求
EnableSessionState 页的会话状态。启用会话状态则为 true;读取会话状态但不能进行更改则为 ReadOnly;否则为 false。默认值为 true。
EnableViewState 是否在页请求之间保持视图状态。默认值为 true。
Inherits 定义当前 Web 窗体所继承的代码隐藏类。该类是 System.Web.UI.Page 的派生类。指定了要执行的代码在aspx.cs文件中的位置。这个属性只用于采用代码隐藏方式编写的 Web 窗体。
Language 指定页中的所有内联呈现(<%  %>和<%=  %>)、代码声名块编译使用的语言。可以是任何.NET Framework支持的语言。每页只能使用和指定一种语言,但一个工程可以使用多种语言。
MasterPageFile 设置内容页的母版页或嵌套母版页的路径。支持相对路径和绝对路径。可以在页面的PreInit事件中动态设置同名的属性实现动态切换母版页的功能。
Session "false",页面不保存session。
用于post数据以后定位浏览器
Theme 指出使用App_Themes文件夹下哪个主题文件夹。其中的样式表.css文件会被自动应用。
Trace 是否启用跟踪。默认值为 false。启用跟踪对页面调试非常有用,我们可以调用Page.Trace对象的方法输出一些有价值的诊断信息。Page.Trace.Write()采用默认字体输出,Page.Trace.Warn()采用红色字体输出。
ValidateRequest 是否应发生请求验证。如果为true,请求验证将根据具有潜在危险的值的硬编码列表检查所有输入数据。默认值为 true。

web.config的全局设置[编辑]

在web.config中为参数指定一个全局的默认值:

<pages enableViewState="false" enableSessionState="false">
  <controls>
        <add tagPrefix="fish" tagName="MainMenu" src="~/Controls/MainMenu.ascx" /> <!--这是用户控件的注册-->
  </controls>
    <namespaces>
        <add namespace="MyMVC" /> <!--导入命名空间-->
    </namespaces>
</pages>

ASP.NET刷新页面后自动滚动到原来位置[编辑]

需要修改下面3处:

设置Page中的属性MaintainScrollPositionOnPostback为true

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs"  MaintainScrollPositionOnPostback="true"  Inherits="Default.Default" %>

设置web.config配置文件中的Pages节点中的MaintainScrollPositionOnPostback属性为true(网站级或目录级)。注:修改网站根目录下的web.config则所有的页面均会受影响,若只修改某个目录下的web.config文件则只影响这个目录中的页面:

<pages maintainScrollPositionOnPostBack="true"></pages> 

在页面的code页面,通过后台代码设置page的MaintainScrollPositionOnPostback属性为true:

Page.MaintainScrollPositionOnPostBack = true;
//或this.MaintainScrollPositionOnPostBack = true;