ASP.NET/Page指令
< ASP.NET
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;