ASP.NET頁面由許多服務(wù)器控件以及HTML控件,文本和圖像組成。來自頁面的敏感數(shù)據(jù)和頁面上不同控件的狀態(tài)被存儲在頁面請求的上下文的隱藏字段中。
ASP.NET運行時控制頁面實例與其狀態(tài)之間的關(guān)聯(lián)。ASP.NET頁面是頁面的一個對象或從其繼承的頁面。
頁面上的所有控件也是從父Control類繼承的相關(guān)控件類的對象。運行頁面時,會創(chuàng)建對象頁面的一個實例及其所有內(nèi)容控件。
ASP.NET頁面也是以.aspx 擴展名保存的服務(wù)器端文件。它本質(zhì)上是模塊化的,可以分為以下幾個核心部分:
Page指令設(shè)置頁面運行的環(huán)境。@Page指令定義了ASP.NET頁面解析器和編譯器使用的頁面特定屬性。 Page指令指定如何處理頁面,并假設(shè)需要采取設(shè)置頁面。
它允許導(dǎo)入命名空間,加載程序集,并使用自定義標簽名稱和命名空間前綴注冊新控件。
代碼部分為頁面和控制事件提供處理程序以及所需的其他功能。我們提到,ASP.NET遵循一個對象模型。 現(xiàn)在,當用戶界面上發(fā)生某些事件時,這些對象會引發(fā)事件,如用戶單擊按鈕或移動光標。事件處理函數(shù)對這些事件需要作出的響應(yīng)進行編碼。事件處理程序只不過是綁定到控件的函數(shù)。
代碼段或代碼隱藏文件提供了所有這些事件處理程序例程以及開發(fā)人員使用的其他功能。 頁面代碼可以預(yù)編譯并以二進制程序集的形式進行部署。
頁面布局提供頁面的界面。它包含服務(wù)器控件,文本,內(nèi)聯(lián)JavaScript和HTML標記。
下面的代碼片段提供了一個示例ASP.NET頁面,用于解釋用C#編寫的Page指令,代碼段和頁面布局:
<!-- directives -->
<% @Page Language="C#" %>
<!-- code section -->
<script runat="server">
private void convertoupper(object sender, EventArgs e)
{
string str = mytext.Value;
changed_text.InnerHtml = str.ToUpper();
}
</script>
<!-- Layout -->
<html>
<head>
<title> Change to Upper Case </title>
</head>
<body>
<h3> Conversion to Upper Case </h3>
<form runat="server">
<input runat="server" id="mytext" type="text" />
<input runat="server" id="button1" type="submit" value="Enter..." OnServerClick="convertoupper"/>
<hr />
<h3> Results: </h3>
<span runat="server" id="changed_text" />
</form>
</body>
</html>
可使用Visual Studio IDE開發(fā)相同的示例。不用編寫代碼,只需將控件拖入設(shè)計視圖即可。首先打開 Visual Studio,點擊文件->新建 -> 項目,在左側(cè)中選擇:C#->Web,右側(cè)關(guān)聯(lián)項目選擇:ASP.NET應(yīng)用程序,并填寫存儲的目錄位置, 如下所示 -

在接下來彈出的對話框中,選擇空應(yīng)用, 如下所示 -

打開解決方案資源管理器,項目的目錄結(jié)構(gòu)如下所示 -

在項目名稱(HelloWorld)上點擊右鍵,在彈出菜單項目中選擇:添加->新建項,然后選擇Web->Web窗體,填寫文件的名稱為:Default.aspx,如下所示 -

打開Default.aspx文件,然后從工具箱中拖放幾個控件進入到設(shè)計視圖中,如下所示 -

現(xiàn)在分別打開兩個文件:Default.aspx 和 Default.cs,它們的完整實現(xiàn)代碼如下 -
文件:Default.aspx -
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="HelloWorld.Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>第一個ASP.NET程序</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="確定" />
結(jié)果是:<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</div>
</form>
</body>
</html>
文件:Default.cs -
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace HelloWorld
{
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
string buf = TextBox1.Text;
Label1.Text = buf.ToUpper();
}
}
}
要運行項目,可以通過點擊代碼上面的“瀏覽器”運行,如下圖 -

運行項目,得到以下結(jié)果 -

在輸入框中輸入一些字符,然后提交,這個應(yīng)用程序會將輸入的字符串轉(zhuǎn)為大寫并顯示出來。如下所示 -

這樣,第一個ASP.Net項目的程序就運行完成了。