.NET Framework 인라인 식 ASP.NET

이 문서에는 다음 ASP.NET 인라인 식에 대한 소개가 포함되어 있습니다.

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

원래 제품 버전: .NET Framework
원래 KB 번호: 976112

<% ... %> 포함된 코드 블록

포함된 코드 블록은 클래식 ASP와의 이전 버전과의 호환성을 유지하는 데 사용됩니다. 블록의 코드는 페이지 렌더링 단계에서 프로그래밍 문을 실행하고 현재 페이지 클래스에서 함수를 호출할 수 있습니다.

다음 예제에서는 루프의 결과를 표시하는 포함된 코드 블록에 샘플 Microsoft Visual Basic .NET 코드가 있는 ASP.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>

포함된 코드 블록은 항상 HTML(HyperText Markup Language) 원본과 혼합되므로 개발자가 읽고 유지 관리하기가 어렵습니다.

ASP.NET 웹 페이지의 포함된 코드 블록에 대한 자세한 내용은 ASP.NET Web Forms Pages의 포함된 코드 블록을 참조하세요.

<%= ... %> displaying expression

<%= ... %> 표시 식은 문만 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 페이지 프레임워크는 다음 지시문을 지원합니다.

지시문 설명
@ Page ASP.NET 페이지 파서 및 컴파일러에서 사용하는 페이지별 특성을 정의합니다. .aspx 파일에만 포함할 수 있습니다.
이 지시문 이름은 ASP.NET 웹 양식 페이지에서만 사용할 수 있습니다.
@ Control ASP.NET 페이지 파서 및 컴파일러에서 사용하는 컨트롤별 특성을 정의합니다. .ascx 파일(사용자 컨트롤)에만 포함할 수 있습니다.
지시문 이름은 사용자 제어 파일에서만 사용할 수 있습니다.
@ Import 네임스페이스를 페이지 또는 사용자 컨트롤로 명시적으로 가져옵니다.
@ Implements 페이지 또는 사용자 컨트롤이 지정된 .NET Framework 인터페이스를 구현한다는 것을 선언적으로 나타냅니다.
@ Register 별칭을 네임스페이스와 클래스 이름과 연결합니다. 사용자 컨트롤 및 사용자 지정 서버 컨트롤이 요청된 페이지 또는 사용자 컨트롤에 포함될 때 렌더링될 수 있습니다.
@ Assembly 컴파일하는 동안 어셈블리를 현재 페이지에 연결합니다. 그러면 모든 어셈블리의 클래스 및 인터페이스를 페이지에서 사용할 수 있습니다.
@ Master ASP.NET master 페이지를 식별합니다.
@ WebHandler ASP.NET IHttpHandler 페이지를 식별합니다.
@ PreviousPageType PreviousPage 속성을 통해 액세스한 이전 페이지에 대해 강력한 입력을 얻을 수 있는 방법을 제공합니다.
@ MasterType 클래스 이름을 ASP.NET 페이지의 Master 속성에 할당합니다. ASP.NET master 페이지에 대한 강력한 형식의 참조를 만드는 방법을 제공합니다.
@ OutputCache 페이지 또는 사용자 컨트롤의 출력 캐싱 정책을 선언적으로 제어합니다.
@ Reference 페이지 또는 사용자 컨트롤을 선언적으로 현재 페이지 또는 사용자 컨트롤에 연결합니다.

지시문 구문에 대한 자세한 내용은 텍스트 템플릿 지시문 구문을 참조하세요.

<%# ... %> 데이터 바인딩 식

데이터 바인딩 식은 이 서버 컨트롤의 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 나타냅니다. 식 접두사는 , ConnectionStrings또는 Resources와 같은 AppSettings식의 종류를 정의합니다. 또한 고유한 식 작성기 만들기 및 정의할 수 있습니다. 콜론(:) 뒤에 오는 식 값은 ASP.NET 실제로 특정 속성의 값으로 사용하는 값입니다.

다음 데모에서는 식 작성기를 사용하여 Web.config 파일의 노드에서 AppSettings 웹 사이트의 저작권을 가져오는 방법과 저작권 정보를 Literal의 Text 속성 값으로 설정하는 방법을 보여 줍니다.

AppSettingsWeb.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 식 개요를 참조하세요.

<%-- ... -- %> 서버 쪽 주석 블록

서버 쪽 주석 블록을 사용하면 개발자가 ASP.NET 웹 양식 페이지의 HTML 원본 위치에 코드 주석을 포함할 수 있습니다(코드 블록 내 <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>

서버 쪽 주석에 대한 자세한 내용은 서버 쪽 주석을 참조하세요.