ASP.NET 2.0 的代碼隱藏模型自首個預覽版以來經歷重大變革,主要回應客戶反饋。新模型語法變化細微但架構大幅優化,且執行階段完全相容 1.x 模型,舊應用程式無需修改即可直接執行。
<%@ Page Language="C#" AutoEventWireup="true"
CodeFile="Default.aspx.cs" Inherits="MsdnMag.Default" %>
namespace MsdnMag
{
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e) { }
}
}
新模型最大亮點:伺服器端控件不再需要在代碼隱藏類別中顯式宣告,但仍可透過控件 ID 完整以程式設計方式存取。編譯器會根據 .aspx 標記自動產生對應的 partial class 部分,包含所有控件的欄位宣告。
<asp:TextBox ID="_nameTextBox" runat="server" />
<asp:Button ID="_enterButton" runat="server" Text="Enter" OnClick="_enterButton_Click" />
<asp:Label ID="_messageLabel" runat="server" />
// 代碼隱藏檔中無需宣告上述控件,直接使用:
protected void _enterButton_Click(object sender, EventArgs e)
{
_messageLabel.Text = "Hello there " + _nameTextBox.Text + "!";
}
此設計消除了控件 ID 變更時須同步修改代碼隱藏檔的維護負擔,大幅降低人為錯誤風險,體現 ASP.NET 2.0「簡化 Web 開發」的核心設計哲學。