[Web Form] HTML 소스에서 바로 사용할 수 있는 ASP.NET 코드 표시 방법
HTML 소스에서 ASP.NET 서버 코드를 표현할 수 있습니다. ASP.NET inline expressions에는 아래와 같은 표현법이 있습니다.
- <% ... %>
- <%= ... %>
- <%@ ... %>
- <%# ... %>
- <%$ ... %>
- <%-- ... --%>
<% ... %>
블록의 코드는 페이지 렌더링 단계 중에 프로그래밍 문을 실행하고 현재 페이지 클래스에서 함수를 호출할 수 있습니다.
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="TEST.aspx.cs" Inherits="Board_TEST" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
</head>
<body>
<% if (true) {%>
표시
<% }%>
<% if (false) {%>
표시X
<% }%>
</body>
</html>
<%= ... %>
코드 비하인드 파일에서 사용하는 Response.Write(...) 코드와 동일합니다. 단일 문자열, int 변수 또는 상수와 같은 정보를 표시하는 가장 간단한 방법입니다. 단 서버 컨트롤 특성에서는 사용할 수 없습니다. 전체 식을 직접 컴파일하기 때문입니다.
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="TEST.aspx.cs" Inherits="Board_TEST" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
</head>
<body>
<form id="form1" runat="server">
<%= DateTime.Now.ToString() %>
</form>
</body>
</html>
<%@ ... %>
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="TEST.aspx.cs" Inherits="Board_TEST" %>
<%@ Register Src="~/Common/BreadCrumbComponent.ascx" TagPrefix="uc1" TagName="BreadCrumbComponent" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
</head>
<body>
<form id="form1" runat="server">
</form>
</body>
</html>
@ Page
ASP.NET 페이지 파서 및 컴파일러에서 사용하는 페이지별 특성을 정의합니다. ASP.NET Web Forms 페이지에서만 사용할 수 있으며 .aspx 파일에만 포함할 수 있습니다.
@ Control
ASP.NET 페이지 파서 및 컴파일러에서 사용하는 컨트롤별 특성을 정의합니다. .ascx 파일(사용자 컨트롤)에만 포함할 수 있습니다.
@ Import
네임스페이스를 페이지 또는 사용자 컨트롤로 명시적으로 가져옵니다.
@ Implements
페이지 또는 사용자 컨트롤이 지정된 .NET Framework 인터페이스를 구현한다는 것을 선언적으로 나타냅니다.
@ Register
별칭을 네임스페이스와 클래스 이름과 연결합니다. 사용자 정의 컨트롤 및 사용자 지정 서버 컨트롤이 요청된 페이지 또는 사용자 정의 컨트롤에 포함될 때 렌더링될 수 있습니다.
@ Assembly
컴파일하는 동안 어셈블리를 현재 페이지에 연결합니다. 이렇게 하면 모든 어셈블리의 클래스 및 인터페이스를 페이지에서 사용할 수 있습니다.
@ Master
ASP.NET 마스터 페이지를 식별합니다.
@ WebHandler
ASP.NET IHttpHandler 페이지를 식별합니다.
@ PreviousPageType
PreviousPage 속성을 통해 액세스한 이전 페이지에 대해 강력한 입력을 가져오는 방법을 제공합니다.
@ MasterType
ASP.NET 페이지의 Master 속성에 클래스 이름을 할당합니다. ASP.NET 마스터 페이지에 대한 강력한 형식의 참조를 만드는 방법을 제공합니다.
@ OutputCache
페이지 또는 사용자 컨트롤의 출력 캐싱 정책을 선언적으로 제어합니다.
@ Reference
페이지 또는 사용자 컨트롤을 현재 페이지 또는 사용자 컨트롤에 선언적으로 연결합니다.
<%# ... %>
서버 컨트롤의 DataBind 메서드가 페이지에서 호출되면 서버 컨트롤 속성과 데이터 원본 간에 바인딩을 만듭니다.
<asp:ListView ID="lvList" runat="server" ItemPlaceholderID="phItemList" OnItemDataBound="lvList_ItemDataBound">
<LayoutTemplate>
<table class="table table-responsive table-hover w-100 align-middle">
<thead>
<tr>
<th class="text-center">ID</th>
<th class="text-center">제목</th>
</tr>
</thead>
<tbody>
<asp:PlaceHolder ID="phItemList" runat="server" />
</tbody>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td class="text-center"><%#Eval("ID")%></td>
<td><%#Eval("Title")%></td>
</tr>
</ItemTemplate>
</asp:ListView>
<%$ ... %>
<%$ Expression Prefix: Expression Value %>
애플리케이션의 구성 또는 리소스 파일에 포함된 정보를 기반으로 컨트롤 속성의 값을 설정하는 데 사용됩니다. 콜론 뒤에 있는 식 값(:) 는 ASP.NET 실제로 특정 속성의 값으로 사용할 것입니다.
Web.config
<appSettings>
<add key="copyright" value="(c) Copyright 2023 "/>
</appSettings>
ASP.NET
<div id="footer">
<asp:Literal ID="Literal1" runat="server" Text="<%$ AppSettings: copyright %>"></asp:Literal>
</div>
<%-- ... --%>
HTML 소스에서 서버 코드 주석을 포함할 수 있습니다. 주석 블록을 사용하면 모든 콘텐츠는 서버에서 처리되어 결과 페이지에서 렌더링 되지 않습니다.
<%-- 주석 시작--%>
<%-- 주석 끝 --%>