本文提供 ASP.NET 中內嵌程式代碼和程序代碼後置模型的簡短概觀。
原始產品版本: ASP.NET
原始 KB 編號: 303247
摘要
本文參考Microsoft .NET Framework 類別庫命名空間 System.Web.UI。
ASP.NET 支援兩種方法來撰寫頁面:
- 內嵌程序代碼
- 程式碼後置
內嵌程序代碼
內嵌程式代碼是直接內嵌在 ASP.NET 頁面中的程序代碼。 下列程式代碼代表包含內嵌程式代碼的範例 ASP.NET 頁面:
Myinlinecode.aspx
<%@ Language=C# %>
<HTML>
<script runat="server" language="C#">
void MyButton_OnClick(Object sender, EventArgs e)
{
MyLabel.Text = MyTextbox.Text.ToString();
}
</script>
<body>
<form id="MyForm" runat="server">
<asp:textbox id="MyTextbox" text="Hello World" runat="server"></asp:textbox>
<asp:button id="MyButton" text="Echo Input" OnClick="MyButton_OnClick" runat="server"></asp:button>
<asp:label id="MyLabel" runat="server"></asp:label>
</form>
</body>
</HTML>
程式碼後置
程序代碼後置是指包含在個別類別檔案中的 ASP.NET 頁面的程序代碼。 這可讓您清楚區分您的 HTML 與簡報邏輯。 下列範例說明 ASP.NET 程式代碼後置頁面:
MyCodebehind.aspx
<%@ Language="C#" Inherits="MyStuff.MyClass" %> <HTML> <body> <form id="MyForm" runat="server"> <asp:textbox id="MyTextBox" text="Hello World" runat="server"></asp:textbox> <asp:button id="MyButton" text="Echo Input" Onclick="MyButton_Click" runat="server"></asp:button> <asp:label id="MyLabel" runat="server" /> </form> </body> </HTML>Mycodebehind.cs
using System; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace MyStuff { public class MyClass : Page { protected System.Web.UI.WebControls.Label MyLabel; protected System.Web.UI.WebControls.Button MyButton; protected System.Web.UI.WebControls.TextBox MyTextBox; public void MyButton_Click(Object sender, EventArgs e) { MyLabel.Text = MyTextBox.Text.ToString(); } } }
在上述範例中,您可以使用下列語法來編譯 Mycodebehind.cs:
csc.exe /out:mycodebehind.dll /t:library mycodebehind.cs
當您使用下列程式代碼時,程式代碼後置頁面會繼承自Page類別。 Page 類別位於 中 System.Web.UI namespace:
public class MyClass : Page
繼承自 Page 類別可讓程式代碼後置頁面存取 ASP.NET 內建物件,例如 Request 和 Response。 此外,繼承自 Page 類別提供架構來處理 ASP.NET 頁面中控件的事件。
在上述範例中,程式代碼後置頁面會在執行 ASP.NET 之前進行編譯。 或者,您可以使用標記來參考程序代碼後置類別 SRC ,如下所示:
<%@ Language="C#" Inherits="MyStuff.MyClass" src="MyCodebehind.cs" %>
在此情況下,ASP.NET 即時編譯程序代碼後置頁面。 只有在更新程序代碼後置檔案時,才會發生此編譯步驟(透過時間戳變更偵測到)。
Visual Studio .NET 中的程式碼後置支援
當您使用 Visual Studio .NET 建立 ASP.NET Web Form 時,程式代碼後置頁面是預設方法。 此外,當您建置方案時,Visual Studio .NET 會自動為您執行預先編譯。
注意
在 Visual Studio .NET 中建立的程式代碼後置頁面包含 Visual Studio .NET 所使用的特殊 page 屬性 Code-behind。