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

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

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

概要

この記事では、Microsoft .NET Framework クラス ライブラリ名前空間 を参照しますSystem.Web.UI

ASP.NET では、ページを作成するための 2 つのメソッドがサポートされています。

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

In-Line コード

インライン コードは、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 継承すると、 や などの RequestResponseASP.NET 組み込みオブジェクトへの分離コード ページ アクセスが提供されます。 さらに、 クラスから Page 継承すると、ASP.NET ページ内のコントロールのイベントを処理するためのフレームワークが提供されます。

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

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

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

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

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

注:

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