方法 : Web フォーム ページを ASP.NET ユーザー コントロールに変換する
更新 : 2007 年 11 月
ASP.NET Web ページの開発後、アプリケーション全体でそのページの機能にアクセスする必要が生じた場合は、ファイルを少し修正するだけでユーザー コントロールに変更できます。
単一ファイルの ASP.NET Web ページをユーザー コントロールに変換するには
ファイル名の拡張子が .ascx になるようにコントロールの名前を変更します。
ページから html、body、form の各要素を削除します。
Language、AutoEventWireup (存在する場合)、CodeFile、および Inherits の各属性を除く、@ Control ディレクティブのすべての属性を削除します。
@ Control ディレクティブに className 属性を追加します。これによって、このユーザー コントロールをページに追加するときに、ユーザー コントロールの型を厳密に指定できます。
分離コードの ASP.NET Web ページをユーザー コントロールに変換するには
.aspx ファイルの拡張子が .ascx になるように名前を変更します。
分離コード ファイルが記述されているプログラミング言語に基づいて、ファイル名の拡張子を .ascx.vb または .ascx.cs に変更します。
分離コード ファイルを開き、継承するクラスを Page から UserControl に変更します。
.aspx ファイルで、次の作業を行います。
@ Control ディレクティブに className 属性を追加します。これによって、このユーザー コントロールをページに追加するときに、ユーザー コントロールの型を厳密に指定できます。
使用例
元の単一ファイルの ASP.NET Web ページおよびページを変換した後のユーザー コントロールのコード例を次に示します。
セキュリティに関するメモ : |
---|
この例には、ユーザー入力を受け付けるテキスト ボックスがあるため、セキュリティ上の脅威になる可能性があります。既定では、ASP.NET Web ページは、ユーザー入力にスクリプトまたは HTML 要素が含まれていないことを検証します。詳細については、「スクリプトによる攻略の概要」を参照してください。 |
<%@ Page Language="VB" %>
<html>
<script runat=server>
Sub EnterBtn_Click(sender as Object, e as EventArgs)
Label1.Text = "Hi " & Name.Text & " welcome to ASP.NET!"
End Sub
</script>
<body>
<h3> <u>Web Forms Page</u> </h3>
<form>
Enter Name: <asp:textbox id="Name" runat=server/>
<asp:button Text="Enter" OnClick="EnterBtn_Click"
runat=server/>
<br>
<br>
<asp:label id="Label1" runat=server/>
</form>
</body>
</html>
<%@ Page Language="C#" %>
<html>
<script runat=server>
void EnterBtn_Click(Object sender, EventArgs e)
{
Label1.Text = "Hi " + Name.Text + " welcome to ASP.NET!";
}
</script>
<body>
<h3> <u>Web Forms Page</u> </h3>
<form>
Enter Name: <asp:textbox id="Name" runat=server/>
<asp:button Text="Enter" OnClick="EnterBtn_Click"
runat=server/>
<br>
<br>
<asp:label id="Label1" runat=server/>
</form>
</body>
</html>
<%@ Control Language="VB" ClassName="SampleUserControl" %>
<h3> <u>User Control</u> </h3>
<script runat=server>
Sub EnterBtn_Click(sender as Object, e as EventArgs)
Label1.Text = "Hi " & Name.Text & " welcome to ASP.NET!"
End Sub
</script>
Enter Name: <asp:textbox id="Name" runat=server/>
<asp:button Text="Enter" OnClick="EnterBtn_Click"
runat=server/>
<br>
<br>
<asp:label id="Label1" runat=server/>
<%@ Control Language="C#" ClassName="SampleUserControl" %>
<h3> <u>User Control</u> </h3>
<script runat=server>
void EnterBtn_Click(Object Sender, EventArgs e)
{
Label1.Text = "Hi " + Name.Text + " welcome to ASP.NET!";
}
</script>
Enter Name: <asp:textbox id="Name" runat=server/>
<asp:button Text="Enter" OnClick="EnterBtn_Click"
runat=server/>
<br>
<br>
<asp:label id="Label1" runat=server/>