@ Register
建立標記前置詞與自訂控制項之間的關聯,以提供開發人員參考 ASP.NET 應用程式檔案 (包括 Web 網頁、使用者控制項和主版頁面 (Master Page)) 中自訂控制項的簡明方式。
<%@ Register tagprefix="tagprefix"
namespace="namespace"
assembly="assembly" %>
<%@ Register tagprefix="tagprefix"
namespace="namespace" %>
<%@ Register tagprefix="tagprefix"
tagname="tagname"
src="pathname" %>
屬性
assembly
您要與 tagprefix 屬性產生關聯之命名空間 (Namespace) 所在的組件。注意事項 組件名稱不包含副檔名。並請注意,如果將自訂控制項的原始程式碼檔置於應用程式的 App_Code 資料夾中,ASP.NET 便會在執行階段動態地編譯原始程式檔,因此您並不需要使用 assembly 屬性。
- namespace
所註冊之自訂控制項的命名空間。
- src
要與 tagprefix:tagname 組產生關聯之宣告式 ASP.NET 使用者控制項 檔案的位置 (相對或絕對)。
- tagname
要與類別產生關聯的任意別名。這個屬性只能用於使用者控制項。
- tagprefix
任意的別名,提供在包含指示詞的檔案中使用之標記命名空間的簡略參考。
備註
將 @ Register 指示詞包含在網頁或使用者控制項中,可讓您使用宣告式 自訂伺服器控制項語法 配置自訂伺服器控制項或使用者控制項。
注意事項 |
---|
您也可以使用 Web.config 檔中的 頁面的 controls 項目 (ASP.NET 設定結構描述) 註冊應用程式之所有頁面上的自訂控制項。 |
請在下列狀況中使用 @ Register 指示詞。
若要以宣告方式將自訂控制項加入至 Web 網頁、使用者控制項、主版頁面或面板檔案 (請參閱 ASP.NET 佈景主題和面板概觀)。
若要以宣告方式將使用者控制項加入至 Web 網頁、使用者控制項、主版頁面或面板檔案。
對於宣告式使用者控制項,請使用 tagname、tagprefix 和 src 屬性。在網頁中宣告控制項時,這裡的前兩個屬性一定會以冒號分隔配對 (tagprefix:tagname) 的方式搭配使用。src 屬性值可以是從應用程式根目錄,到使用者控制項原始程式檔的相對或絕對路徑。為了使用上的簡便,建議您使用相對路徑。例如,假設您將應用程式的使用者控制項檔案儲存在 \Usercontrol 目錄中 (這個目錄是應用程式根目錄的子目錄),若要包含 Usercontrol1.ascx 檔案中的使用者控制項,請在 @ Register 指示詞中包含下列程式碼:
Src="~\usercontrol\usercontrol1.ascx"
波狀符號 (~) 字元表示應用程式的根目錄。
注意事項 |
---|
如果使用者控制項與包含它的頁面位於相同目錄,src 屬性值就應該是 .ascx 檔的名稱和副檔名。 |
在包含已編譯成 .dll 的自訂伺服器控制項以便用於應用程式時,請使用 tagprefix 以及 assembly 和 namespace 屬性。如果沒有包含 namespace 屬性,或是將空字串 ("") 指派給它,便會發生剖析器錯誤。
警告
開發自訂伺服器控制項時,必須將它包含在命名空間中。如果不這麼做,將無法從 ASP.NET Web 網頁中存取它。如需開發自訂 ASP.NET 伺服器控制項的詳細資訊,請參閱開發自訂的 ASP.NET 伺服器控制項。
範例
下列程式碼範例使用 @ Register 指示詞宣告 tagprefix 和 tagname 別名,以及指派 src 屬性,以參考至 Web 網頁內的使用者控制項。程式碼的第一個部分是個簡單的使用者控制項,由 ASP.NET Calendar 控制項所組成。程式碼的第二個部分則是裝載控制項的網頁。請注意,tagprefix 屬性會指派任意的前置詞值來配合標記使用。tagname 屬性則會使用指派至使用者控制項之類別名稱的值 (雖然這個屬性具有任意的值,而且能夠使用任何字串值,您不需要使用受到參考之控制項的類別名稱)。src 屬性指向使用者控制項的原始程式檔,是應用程式根目錄資料夾的相對路徑。使用者控制項的參考會藉由使用前置詞、冒號和標記名稱,以下列形式進行:<uc1:CalendarUserControl runat="server" />
。
<%@ Control ClassName="CalendarUserControl" %>
<asp:calendar id="Calendar1" runat="server" />
<%@ Page %>
<%@ register tagprefix="uc1"
tagname="CalendarUserControl"
src="~/CalendarUserControl.ascx" %>
<!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>Calendar Page</title>
</head>
<body>
<form id="form1" runat="server">
<uc1:calendarusercontrol runat="server" />
</form>
</body>
</html>