Обзор модели ASP.NET Code-behind

В этой статье представлен краткий обзор встроенного кода и модели программной части в ASP.NET.

Исходная версия продукта: ASP.NET
Исходный номер базы знаний: 303247

Итоги

Эта статья относится к пространству System.Web.UIимен библиотеки классов Microsoft платформа .NET Framework.

ASP.NET поддерживает два метода для создания страниц:

  • Встроенный код
  • Поддерживающий код

Код в строке

Встроенный код — это код, внедренный непосредственно на страницу 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 класса предоставляет доступ к ASP.NET встроенным объектам ASP.NET, таким как Request и Response. Кроме того, наследование от Page класса предоставляет платформу для обработки событий для элементов управления на странице ASP.NET.

В предыдущем примере страница программной части компилируется перед запуском ASP.NET. Кроме того, можно ссылаться на класс code-behind с помощью тега SRC следующим образом:

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

В этом случае ASP.NET компилирует страницу программной части на лету. Этот шаг компиляции возникает только при обновлении файла программной части (который обнаруживается с помощью изменения метки времени).

Поддержка программной части в Visual Studio .NET

При использовании Visual Studio .NET для создания ASP.NET веб-формы страницы программной части — это метод по умолчанию. Кроме того, Visual Studio .NET автоматически выполняет предварительную компиляцию при сборке решения.

Примечание.

Страницы кода, созданные в Visual Studio .NET, включают специальный page атрибут, Code-behindкоторый использует Visual Studio .NET.