@ Register

タグ プリフィックスとカスタム コントロールの間の関連付けを作成します。これにより、開発者は ASP.NET アプリケーション ファイル内のカスタム コントロール (Web ページ、ユーザー・コントロール、マスタ・ページなど) を簡単に参照できるようになります。

<%@ Register tagprefix="tagprefix"
   namespace="namespace"
   assembly="assembly" %>
<%@ Register tagprefix="tagprefix"
   namespace="namespace" %>
<%@ Register tagprefix="tagprefix"
   tagname="tagname"
   src="pathname" %>

属性

  • assembly
    tagprefix 属性と関連付けた名前空間が存在するアセンブリ。

    注意

    アセンブリ名には、ファイル拡張子は含めません。さらに、アプリケーションの App_Code フォルダにカスタム コントロールのソース コード ファイルを配置した場合、ASP.NET ではソース ファイルが実行時に動的にコンパイルされるため、assembly 属性を使用する必要がありません。

  • namespace
    登録されるカスタム コントロールの名前空間。
  • tagname
    クラスと関連付ける任意のエイリアス。この属性は、ユーザー コントロールにのみ使用されます。
  • tagprefix
    ディレクティブが含まれるファイルで使用されているマークアップの名前空間への短縮形参照を提供する任意のエイリアス。

解説

@ Register ディレクティブをページまたはユーザー コントロールに含めると、宣言カスタム サーバー コントロール構文を使用して、カスタム サーバー コントロールまたはユーザー コントロールをレイアウトできます。

注意

さらに、Web.config ファイルでpages の controls 要素 (ASP.NET 設定スキーマ)を使用することにより、アプリケーションのすべてのページ上でカスタム コントロールを登録することもできます。

@ Register ディレクティブは、次のいずれかの場合に使用します。

  • カスタム サーバー コントロールを宣言によって Web ページ、ユーザー コントロール、マスタ ページ、またはスキン ファイルに追加する場合 (「ASP.NET のテーマとスキンの概要」を参照)。

  • ユーザー コントロールを宣言によって Web ページ、ユーザー コントロール、マスタ ページ、またはスキン ファイルに追加する場合。

宣言ユーザー コントロールの場合は、tagnametagprefix、および src 属性を使用します。この最初の 2 つの属性は、ページ内でコントロールを宣言するときに、常にコロンで区切られたペア (tagprefix:tagname) として使用されます。src 属性の値は、アプリケーションのルート ディレクトリからユーザー コントロールのソース ファイルへの相対パスまたは絶対パスのいずれかです。相対パスを指定する方が簡単です。たとえば、アプリケーションのすべてのユーザー コントロール ファイルを、アプリケーション ルートのサブディレクトリの \usercontrol ディレクトリに保存するとします。Usercontrol1.ascx ファイルにあるユーザー コントロールを含めるには、次のコードを @ Register ディレクティブに追加します。

Src="~\usercontrol\usercontrol1.ascx" 

ティルダ (~) 文字は、アプリケーションのルート ディレクトリを表します。

注意

ユーザー コントロールを含むページと同じディレクトリにユーザー コントロールがあるときは、src 属性の値を .ascx ファイルの名前と拡張子にする必要があります。

.dll ファイルとしてコンパイルしたカスタム サーバー コントロールをアプリケーションで使用するために組み込む場合は、tagprefix と共に assembly 属性および namespace 属性を使用します。namespace 属性を設定しない場合またはこの属性に空の文字列 ("") を割り当てた場合は、パーサー エラーが発生します。

ヒント

カスタム サーバー コントロールを開発するときには、そのカスタム サーバー コントロールを名前空間に含める必要があります。名前空間に含まれないカスタム サーバー コントロールには、ASP.NET ページからアクセスできません。カスタム ASP.NET サーバー コントロールの開発の詳細については、「ASP.NET カスタム サーバー コントロールの開発」を参照してください。

使用例

次のコード例では、@ Register ディレクティブを使用して tagprefix および tagname エイリアスを宣言すると共に src 属性を割り当て、Web ページ内のユーザー コントロールを参照します。コードの最初の部分は、ASP.NET Calendar コントロールで構成される単純なユーザー コントロールです。コードの 2 番目の部分は、コントロールをホストするページです。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 ユーザー コントロール