@ 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) 所在的組件。

    Note注意事項

    組件名稱不包含副檔名。並請注意,如果將自訂控制項的原始程式碼檔置於應用程式的 App_Code 資料夾中,ASP.NET 便會在執行階段動態地編譯原始程式檔,因此您並不需要使用 assembly 屬性。

  • namespace
    所註冊之自訂控制項的命名空間。
  • tagname
    要與類別產生關聯的任意別名。這個屬性只能用於使用者控制項。
  • tagprefix
    任意的別名,提供在包含指示詞的檔案中使用之標記命名空間的簡略參考。

備註

@ Register 指示詞包含在網頁或使用者控制項中,可讓您使用宣告式 自訂伺服器控制項語法 配置自訂伺服器控制項或使用者控制項。

Note注意事項

您也可以使用 Web.config 檔中的 頁面的 controls 項目 (ASP.NET 設定結構描述) 註冊應用程式之所有頁面上的自訂控制項。

請在下列狀況中使用 @ Register 指示詞。

  • 若要以宣告方式將自訂控制項加入至 Web 網頁、使用者控制項、主版頁面或面板檔案 (請參閱 ASP.NET 佈景主題和面板概觀)。

  • 若要以宣告方式將使用者控制項加入至 Web 網頁、使用者控制項、主版頁面或面板檔案。

對於宣告式使用者控制項,請使用 tagnametagprefixsrc 屬性。在網頁中宣告控制項時,這裡的前兩個屬性一定會以冒號分隔配對 (tagprefix:tagname) 的方式搭配使用。src 屬性值可以是從應用程式根目錄,到使用者控制項原始程式檔的相對或絕對路徑。為了使用上的簡便,建議您使用相對路徑。例如,假設您將應用程式的使用者控制項檔案儲存在 \Usercontrol 目錄中 (這個目錄是應用程式根目錄的子目錄),若要包含 Usercontrol1.ascx 檔案中的使用者控制項,請在 @ Register 指示詞中包含下列程式碼:

Src="~\usercontrol\usercontrol1.ascx" 

波狀符號 (~) 字元表示應用程式的根目錄。

Note注意事項

如果使用者控制項與包含它的頁面位於相同目錄,src 屬性值就應該是 .ascx 檔的名稱和副檔名。

在包含已編譯成 .dll 的自訂伺服器控制項以便用於應用程式時,請使用 tagprefix 以及 assemblynamespace 屬性。如果沒有包含 namespace 屬性,或是將空字串 ("") 指派給它,便會發生剖析器錯誤。

警告

開發自訂伺服器控制項時,必須將它包含在命名空間中。如果不這麼做,將無法從 ASP.NET Web 網頁中存取它。如需開發自訂 ASP.NET 伺服器控制項的詳細資訊,請參閱開發自訂的 ASP.NET 伺服器控制項

範例

下列程式碼範例使用 @ Register 指示詞宣告 tagprefixtagname 別名,以及指派 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>

請參閱

參考

指示詞語法

概念

ASP.NET Web 網頁語法概觀

其他資源

ASP.NET 使用者控制項