コード宣言ブロック
更新 : 2007 年 11 月
コード宣言ブロックでは、runat="server" 属性でマークされた <script> ブロック内の ASP.NET アプリケーション ファイルに埋め込まれたサーバー コードのセクションを定義します。
<script runat="server" language="codelanguage" Src="pathname">
Code goes here.
</script>
属性
language
このコード宣言ブロックで使用される言語を指定します。この値には、Visual Basic (VB)、C#、JScript .NET を含む、.NET Framework と互換性のあるすべての言語を指定できます。言語を指定しないと、@ Page ディレクティブまたは @ Control ディレクティブで指定された言語が、この値の既定値として設定されます。ディレクティブで言語が指定されていない場合、アプリケーションの Web.config ファイルで既定値を変更しない限り、既定値は VB になります。メモ : 1 つの ASP.NET ページまたはユーザー コントロールで使用できる言語は 1 つだけです。コード宣言ブロックの開始タグと、@ Page ディレクティブまたは @ Control ディレクティブのように、複数の場所で言語を指定する場合は (必須ではありません)、同じ言語を指定する必要があります。
runat
値が runat="server" の場合、この属性は script ブロック内に含まれているコードがサーバーで動作し、クライアントでは動作しないことを指定します。この属性は、サーバー側コード ブロックに必要です。src
読み込む外部スクリプト ファイルのパスとファイル名を指定します。この属性を使用すると、その宣言ブロック内の他のコードはすべて無視されます。
解説
コード宣言ブロックは、server に設定された runat 属性値が含まれる <script> タグを使用して定義されます。<script> 要素では、内部コードの言語を指定する language 属性をオプションとして使用できます。何も指定されていない場合、ASP.NET では、既定により基本ページまたはユーザー コントロール (@ Page ディレクティブおよび @ Control ディレクティブで制御) で構成されている言語が使用されます。サーバー側コードのこれらのブロックは、Web ページ、ユーザー コントロール、マスタ ページ、および Global.asax ファイルなど、多数の ASP.NET アプリケーション ファイル内で宣言できます。特定の ASP.NET アプリケーション ファイルがコンパイルされると、埋め込まれたコード ブロックは、ASP.NET の特定のファイルの種類に関連付けられた特定のオブジェクトと共にコンパイルされます。たとえば、ページがコンパイルされると、埋め込まれたコード宣言ブロックは、Page クラスと共にサーバー上の単一のページ オブジェクトにコンパイルされます。
<script> 要素で src 属性を使用することにより、外部スクリプト ファイルを指定できます。src 属性を定義すると、<script> 要素の開始タグと終了タグの間にあるすべての内容が無視されます。この場合は、開始タグの末尾に終了を示すスラッシュを付けます。たとえば、<script runat="server" src="myFile.cs" /> となります。
使用例
EnterBtn_Click イベントに対してイベント処理ロジックを定義する方法を次のコード例に示します。
セキュリティに関するメモ : |
---|
この例には、ユーザー入力を受け付けるテキスト ボックスがあるため、セキュリティ上の脅威になる可能性があります。既定では、ASP.NET Web ページは、ユーザー入力にスクリプトまたは HTML 要素が含まれていないことを検証します。詳細については、「スクリプトによる攻略の概要」を参照してください。 |
<html>
<script language="C#" runat="server">
void EnterBtn_Click(Object Src, EventArgs E) {
Message.Text = "Hi " + Name.Text + ", welcome to ASP.NET!";
}
</script>
<body>
<form runat="server">
Enter your name: <asp:textbox id="Name" runat=server/>
<asp:button text="Enter" Onclick="EnterBtn_Click" runat="server"/>
<p>
<asp:label id="Message" runat=server/>
</form>
</body>
</html>
<html>
<script language="VB" runat="server">
Sub EnterBtn_Click(Src As Object, e As EventArgs)
Message.Text = "Hi " & Name.Text & ", welcome to ASP.NET!"
End Sub
</script>
<body>
<form runat="server">
Enter your name: <asp:textbox id="Name" runat=server/>
<asp:button text="Enter" Onclick="EnterBtn_Click"
runat="server"/>
<p>
<asp:label id="Message" runat=server/>
</form>
</body>
</html>