Поделиться через


встроенные выражения ASP.NET в платформа .NET Framework

В этой статье содержатся общие сведения о следующих ASP.NET встроенных выражениях:

  • <% ... %>
  • <%= ... %>
  • <%@ ... %>
  • <%# ... %>
  • <%$ ... %>
  • <%-- ... --%>

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

<% ... %> внедренных блоков кода

Внедренный блок кода используется для сохранения обратной совместимости с классическим ASP. Код в блоке может выполнять инструкции программирования и вызывать функции в текущем классе страниц во время этапа отрисовки страниц.

В следующем примере показана страница ASP.NET с примером кода Microsoft Visual Basic .NET в внедренном блоке кода для отображения результатов цикла:

<%@ Page Language="VB" %>
<html>
<body>
    <form id="form1" runat="server">
        <% For i As Integer = 16 To 24 Step 2%>
            <div style="font-size: <% Response.Write(i)%>">
                Hello World<br />
            </div>
        <% Next%>
    </form>
</body>
</html>

Так как внедренный блок кода всегда смешан с источником языка разметки HyperText (HTML), разработчикам трудно читать и поддерживать их.

Дополнительные сведения о внедренных блоках кода на веб-страницах ASP.NET см. в разделе "Встроенные блоки кода" на страницах ASP.NET веб-формы.

<%= ... %> отображения выражения

Отображаемое <%= ... %> выражение является эквивалентом внедренного блока кода, содержащего только инструкцию Response.Write(...) . Это самый простой способ отображения таких сведений, как одна строка, переменная int или константа.

Например, следующий пример кода отображает текущее время:

<%@ Page Language="VB" %>
<html>
    <body>
        <form id="form1" runat="server">
            <%=DateTime.Now.ToString() %>
        </form>
    </body>
</html>

Помните, что отображаемое выражение нельзя использовать в атрибутах элементов управления сервера. Это связано с тем, что платформа .NET Framework напрямую компилирует все выражение вместо отображаемого содержимого в качестве значения атрибута.

Дополнительные сведения о отображении сведений из ASP.NET см . в ASP.NET.

<Выражение директивы %@ ... %>

Выражение директивы — это синтаксис, указывающий параметры, используемые страницой и компиляторами пользовательского элемента управления при обработке страниц ASP.NET веб-формы (.aspx) и файлов пользовательского элемента управления (ASCX).

Платформа страниц ASP.NET поддерживает следующие директивы:

Директива Description
@ Page Определяет атрибуты для конкретной страницы, используемые средство синтаксического анализа страниц ASP.NET и компилятором. Можно включить только в файлы .aspx.
Это имя директивы можно использовать только на страницах веб-формы ASP.NET.
@ Control Определяет атрибуты, относящиеся к элементу управления, которые используются средство синтаксического анализа страниц ASP.NET и компилятора. Можно включить только в ascx-файлы (пользовательские элементы управления).
Имя директивы можно использовать только в файлах пользовательского элемента управления.
@ Import Явно импортирует пространство имен на страницу или в элемент управления пользователем.
@ Implements Декларативно указывает, что страница или элемент управления пользователем реализует указанный платформа .NET Framework интерфейс.
@ Register Связывает псевдонимы с пространствами имен и именами классов. Это позволяет отображать пользовательские элементы управления и пользовательские серверные элементы управления, если они включены в запрошенную страницу или элемент управления пользователем.
@ Assembly Связывает сборку с текущей страницей во время компиляции. Он делает все классы и интерфейсы сборки доступными для использования на странице.
@ Master Определяет главную страницу ASP.NET.
@ WebHandler Определяет страницу ASP.NET IHttpHandler.
@ PreviousPageType Предоставляет способ получения строгого ввода для предыдущей страницы, доступ к ней через свойство PreviousPage.
@ MasterType Назначает имя класса свойству Master страницы ASP.NET. Предоставляет способ создания строго типизированной ссылки на главную страницу ASP.NET.
@ OutputCache Декларативно управляет политиками кэширования выходных данных страницы или пользовательского элемента управления.
@ Reference Декларативно связывает страницу или элемент управления пользователем с текущей страницей или пользовательским элементом управления.

Дополнительные сведения о синтаксисе директив см . в синтаксисе директивы "Текстовый шаблон".

<%# ... %> выражение привязки данных

Выражение привязки данных создает привязку между свойством серверного элемента управления и источником данных, когда метод DataBind элемента управления dataBind этого сервера вызывается на странице.

В следующем примере показано, как использовать выражение привязки данных для привязки строки из функции к свойству Text метки:

<%@ Page Language="VB" %>
<script runat="server">
    Protected Function SayHello() As String
        Return "Hello World"
    End Function

    Protected Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs)
        lblHello.DataBind()
    End Sub
</script>
<html>
    <body>
        <form id="form1" runat="server">
            <asp:Label ID="lblHello" runat="server" Text="<%# SayHello%>"></asp:Label>
        </form>
    </body>
</html>

Дополнительные сведения о синтаксисе выражения привязки данных см . в синтаксисе выражения привязки данных.

<%$ ... %> построителя выражений

Построитель выражений используется для задания значений свойств элемента управления на основе сведений, содержащихся в конфигурации приложения или файлах ресурсов. В следующем примере показан базовый синтаксис построителя выражений:
<%$ Expression Prefix: Expression Value %>

Знак доллара ($) указывает на ASP.NET, что следующее выражение является построителем выражений. Префикс выражения определяет тип выражения, например AppSettings, ConnectionStringsили Resources. Кроме того, можно создать и определить собственный построитель выражений. Значение выражения, которое следует двоеточию (:) является тем, что ASP.NET фактически будет использоваться в качестве значения определенного свойства.

В следующей демонстрации показано, как использовать построитель выражений для получения авторских прав веб-сайта из AppSettings узла в файле web.config и как задать сведения об авторских правах в качестве значения свойства Text Литерала.

Узел AppSettings в файле конфигурации Web.config :

<appSettings>
    <add key="copyright" value="(c) Copyright 2009 WebSiteName.com"/>
</appSettings>

Построитель выражений на странице веб-формы ASP.NET:

<div id="footer">
    <asp:Literal ID="Literal1" runat="server" Text="<%$ AppSettings: copyright %>"></asp:Literal>
</div>

Дополнительные сведения о выражениях ASP.NET см. в ASP.NET обзоре выражений.

<Блок комментариев на стороне сервера %-- ... -- %>

Блок комментариев на стороне сервера позволяет разработчикам внедрять комментарии кода в любое расположение HTML-источника ASP.NET страниц веб-формы (за исключением <script> блоков кода). Любое содержимое между открывающим и закрывающим тегами блока комментариев на стороне сервера не будет обработано на сервере или отрисовывается на результирующей странице.

В следующем примере кода показано, как использовать блок комментариев на стороне сервера на странице ASP.NET:

<%@ Page Language="VB" %>
<script runat="server">
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim strName As String
        strName = Session("userName")
        lblUserName.Text = strName
    End Sub
</script>
<html>
    <body>
        <form id="form1" runat="server">
            <%-- Label for UserName --%>
            <asp:Label ID="lblUserName" runat="server" Text=""></asp:Label>
        </form>
    </body>
</html>

Дополнительные сведения о комментариях на стороне сервера см. в комментариях на стороне сервера.