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;