次の方法で共有


ASP.NET 分離コード モデルの概要

この記事では、ASP.NET のインライン コードと分離コード モデルの簡単な概要について説明します。

元の製品バージョン: ASP.NET
元の KB 番号: 303247

まとめ

この記事では、Microsoft .NET Framework クラス ライブラリの名前空間 System.Web.UIについて説明します。

ASP.NET では、ページを作成する 2 つの方法がサポートされています。

  • インライン コード
  • 分離コード

インライン コード

インライン コードは、ASP.NET ページ内に直接埋め込まれるコードです。 次のコードは、インライン コードを含むサンプル ASP.NET ページを表します。

Myinlinecode.aspx

<%@ Language=C# %>
<HTML>
    <script runat="server" language="C#">
        void MyButton_OnClick(Object sender, EventArgs e)
        {
            MyLabel.Text = MyTextbox.Text.ToString();
        }
    </script>
    <body>
        <form id="MyForm" runat="server">
            <asp:textbox id="MyTextbox" text="Hello World" runat="server"></asp:textbox>
            <asp:button id="MyButton" text="Echo Input" OnClick="MyButton_OnClick" runat="server"></asp:button>
            <asp:label id="MyLabel" runat="server"></asp:label>
        </form>
    </body>
</HTML>

分離コード

分離コードとは、別のクラス ファイル内に含まれる ASP.NET ページのコードを指します。 これにより、プレゼンテーション ロジックから HTML をクリーンに分離できます。 次の例は、ASP.NET 分離コード ページを示しています。

  • MyCodebehind.aspx

    <%@ Language="C#" Inherits="MyStuff.MyClass" %>
    <HTML>
        <body>
            <form id="MyForm" runat="server">
                <asp:textbox id="MyTextBox" text="Hello World" runat="server"></asp:textbox>
                <asp:button id="MyButton" text="Echo Input" Onclick="MyButton_Click" runat="server"></asp:button>
                <asp:label id="MyLabel" runat="server" />
            </form>
        </body>
    </HTML>
    
  • Mycodebehind.cs

    using System;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    namespace MyStuff
    {
        public class MyClass : Page
        {
            protected System.Web.UI.WebControls.Label MyLabel;
            protected System.Web.UI.WebControls.Button MyButton;
            protected System.Web.UI.WebControls.TextBox MyTextBox;
    
            public void MyButton_Click(Object sender, EventArgs e)
            {
                MyLabel.Text = MyTextBox.Text.ToString();
            }
        }
    }
    

前のサンプルでは、次の構文を使用して Mycodebehind.csをコンパイルできます。

csc.exe /out:mycodebehind.dll /t:library mycodebehind.cs

次のコードを使用すると、分離コード ページは Page クラスから継承されます。 Page クラスは、 System.Web.UI namespaceに存在します。

public class MyClass : Page

Page クラスから継承すると、コード ビハインド ページは、RequestResponseなどの ASP.NET 組み込みオブジェクトにアクセスできます。 さらに、 Page クラスから継承すると、ASP.NET ページ内のコントロールのイベントを処理するためのフレームワークが提供されます。

前のサンプルでは、コード ビハインド ページは、ASP.NET 実行する前にコンパイルされます。 または、次のように SRC タグを使用して分離コード クラスを参照することもできます。

<%@ Language="C#" Inherits="MyStuff.MyClass" src="MyCodebehind.cs" %>

この場合、ASP.NET は、その場で分離コード ページをコンパイルします。 このコンパイル手順は、分離コード ファイルが更新された場合にのみ発生します (タイムスタンプの変更によって検出されます)。

Visual Studio .NET での分離コードのサポート

Visual Studio .NET を使用して web フォーム ASP.NET 作成する場合、分離コード ページが既定のメソッドです。 さらに、ソリューションをビルドすると、Visual Studio .NET によって自動的にプリコンパイルが実行されます。

Note

Visual Studio .NET で作成される分離コード ページには、Visual Studio .NET で使用される特別な page 属性 Code-behindが含まれます。