Asp.net 2.0為構造Asp.net頁面的代碼有兩種途徑。
第一種是在後台編碼模式。
有兩種寫法,
方法一是在.aspx.cs中寫代碼。這樣做的好處就是代碼和頁面內容分離,使代碼更清晰。
方法二是aspx中具有 runat="server" 屬性的 script 塊中(單檔案頁)寫代碼。
例如:
本文下邊<script runat="server"> 角本塊 和 “後台CS檔案”都有是後台編碼模式。
後台參編碼模式的代碼是由指令碼引擎來解釋的。
第二種是在內嵌代碼模式。
這種方式類似於舊風格的Asp頁面。它是在aspx中將代碼寫在<%%>之間。
例子如下: 代碼
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>無標題頁</title>
<%--後置代碼--%>
<script runat="server">
string sVal = "valTest";
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:Button ID="btnTest" runat="server" Text="BtnTest" />
<div>
<%--內嵌程式碼--%>
<%for (int i = 0; i < 10; i++)
{
Response.Write("<br/>" + i.ToString());
}
%>
<br />
<%--調用後台GetTime()方法--%>
Current Time is<%=GetTime() %>
<br />
<%--調用在script角本塊中的後台代碼--%>
<%=sVal%>
</div>
</form>
</body>
</html>
後台CS檔案:
代碼
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
/// <summary>
/// 得到時間
/// </summary>
/// <returns></returns>
public string GetTime()
{
string sTime = "";
return sTime = DateTime.Now.ToString();
}
}
嵌入式代碼塊是在呈現頁面的過程中執行的伺服器代碼。塊中的代碼可以執行編程語句,並調用當前頁類中的函數。
這種代碼:<% %>代碼塊與ASP不同,它會被真正地編譯——而不是由指令碼引擎來解釋,即代碼是已編譯好的,不是解釋性的,這樣效能會好得多。
對比:
一般情況下,將嵌入式代碼塊用於複雜的編程邏輯並不是最佳做法,因為當頁中的代碼與標記混合時,很難進行調試和維護。
此外,由於代碼僅在呈現頁的過程中執行,因此與將代碼置於適當的頁處理階段以執行後台代碼或指令碼塊代碼相比,其靈活性大大降低。
嵌入式代碼塊的部分用途包括:
將控制項元素或標記元素的值設定為函數返回的值,
將計算直接嵌入到標記或控制項屬性中。
註:部分內容摘自MSDN