程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET 2.0中的代碼隱藏和編譯

ASP.NET 2.0中的代碼隱藏和編譯

編輯:關於ASP.NET

我還記得在 2003 年的 8 月坐在 Microsoft 公司的一個房間內傾聽 Scott Guthrie 和其他人(包括我的同事 Rob Howard,他也是專欄作家)介紹 ASP.NET 2.0 的大量新功能。他們演示了一個又一個功能,這些功能令我們非常吃驚,因為它們極大地簡化了 Web 開發,而且是以可插入和可擴展的方式實現的,因此在開發過程中能夠以任何所需級別進行更改。

後續測試版本中進行了大量更改,多數是以修改、錯誤修復和控件附加的形式進行的。但是,有一個功能(代碼隱藏模型)自從第一個預覽版以來已經進行了大量更改,這主要是為了響應客戶的反饋。現在即將發布之時,我想利用這個機會描述一下這個新的代碼隱藏模型、它的基本原理,以及 Web開發人員將如何使用它。我也會介紹該模型的一些潛在的副作用以及如何在設計中解決它們。請注意,ASP.NET 2.0 運行時完全支持 1.x 模型,因此針對 1.x 編寫的應用程序可以在無需修改的情況下直接運行。

代碼隱藏

雖然該代碼隱藏模型在 2.0 中是不同的,但是它的語法已經進行了少量更改。實際上,該更改十分細微,如果您不仔細查看,甚至都無法注意到它。圖 1 顯示新的代碼隱藏語法。

Default.aspx
<%@ Page Language="C#" AutoEventWireup="true"
CodeFile="Default.aspx.cs" Inherits="MsdnMag.Default" %>
Default.aspx.cs
namespace MsdnMag
{
 public partial class Default : System.Web.UI.Page
 {
protected void Page_Load(object sender, EventArgs e)
{}
 }
}

該模型與以前的 1.x 模型有兩個區別 — 在 @ Page 指令中引入了 CodeFile 屬性,以及將代碼隱藏類聲明為部分類。當開始生成該頁時,您將注意到另一個區別 — 服務器端控件不再需要在代碼隱藏類中顯式聲明,但是您仍然能夠以編程方式完整地訪問它們。例如,圖 2 中的窗體有若干個在代碼隱藏文件中以編程方式使用的服務器端控件,但是您可以注意到,代碼隱藏類中缺少任何顯式控件聲明。

Default.aspx
<%@ Page Language="C#" AutoEventWireup="true"
CodeFile="Default.aspx.cs" Inherits="MsdnMag.Default" %>
<!DOCTYPE html PUBLIC "..." "...">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
Enter your name:
<asp:TextBox ID="_nameTextBox" runat="server" /><br />
<asp:Button ID="_enterButton" runat="server"
Text="Enter" OnClick="_enterButton_Click"/> <br />
<asp:Label ID="_messageLabel" runat="server" />
</div>
</form>
</body>
</html>
Default.aspx.cs
namespace MsdnMag
{
 public partial class Default : System.Web.UI.Page
 {
protected void _enterButton_Click(object sender, EventArgs e)
{
 _messageLabel.Text = "Hello there " + _nameTextBox.Text + "!";
}
 }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved