Razor Expressions
Razor Expressions은 Razor syntax를 사용하여 ASP.NET Core 웹 애플리케이션에서 동적으로 값을 표시하거나 표현식을 계산하는 데 사용되는 템플릿 문법입니다. Razor 템플릿은 HTML, CSS 및 C# 코드를 결합하여 웹 페이지를 동적으로 생성하는 데 사용됩니다.
Razor Expressions은 중괄호({}) 안에 C# 코드를 작성하여 구현됩니다. 이러한 코드는 중괄호 안에 있는 모든 코드를 실행하고 결과를 문자열로 변환하여 출력합니다. 이것은 Razor syntax에서 @를 사용하여 수행됩니다. 예를 들어, 다음 코드에서 @는 Razor syntax에서 Razor Expression을 시작한다는 것을 나타내고, 중괄호 안에 있는 코드는 계산되어 결과를 생성합니다.
<h1>@("Hello, " + User.Identity.Name)</h1>
위 코드는 현재 사용자 이름을 포함하는 "Hello" 문자열을 생성합니다. Razor Expression에서는 문자열, 숫자, 변수, 연산자, 함수 호출 등 C# 언어의 다양한 요소를 사용할 수 있습니다.
Razor Expressions은 매우 유연하고 강력한 기능을 제공하여 개발자가 동적인 웹 페이지를 생성하고 데이터를 표시할 수 있도록 도와줍니다. 이러한 기능은 ASP.NET Core 웹 애플리케이션에서 매우 중요하며, 웹 개발자는 Razor Expressions을 이해하고 숙련된 기술로 사용할 수 있어야 합니다.
ASP.NET Core Razor Directives
ASP.NET Core Razor Directive는 Razor 파일의 컴파일 및 렌더링 동작을 제어하는 지시문입니다. Razor 파일은 Razor 엔진에 의해 컴파일되고 HTML 코드로 변환됩니다. Razor Directive는 이 컴파일 동작을 제어하여 렌더링 결과를 커스터마이징 할 수 있습니다.
Razor Directive는 @ 문자로 시작하며, 다음과 같은 형식을 가집니다.
@directive-name directive-value
여기서 directive-name
은 지시문의 이름이고, directive-value
는 지시문 값입니다. Razor Directive는 `@ 문자로 시작하므로, Razor 파일에서 C# 코드와 혼동되지 않도록 조심해야 합니다.
Razor Directive의 종류는 다양하지만, 일부 일반적인 Razor Directive는 다음과 같습니다. 지금은 목록만 간단히 읽고 넘어가세요.
@model
: Razor 파일에서 사용할 모델 클래스를 지정합니다.@inject
: 서비스 의존성을 주입합니다.@using
: 사용할 네임스페이스를 선언합니다.@layout
: Razor 파일에서 사용할 레이아웃 파일을 지정합니다.@section
: 레이아웃 파일에서 Razor 파일에서 정의한 섹션을 정의합니다.
이러한 Razor Directive는 Razor 파일에서 렌더링 결과를 커스터마이징하고, Razor 엔진이 렌더링 동작을 수행하는 방식을 변경하는 데 유용합니다.
HTML 헬퍼 메서드
HTML Helper 메서드 | 설명 | 사용 예시 |
---|---|---|
Display() |
모델 데이터를 표시합니다. | @Html.DisplayFor(model => model.Name) |
Label() |
모델 데이터와 연결된 레이블을 표시합니다. | @Html.LabelFor(model => model.Name) |
ValidationMessage() |
모델 데이터의 유효성 검사 오류 메시지를 표시합니다. | @Html.ValidationMessageFor(model => model.Name) |
ActionLink() |
지정된 작업에 대한 하이퍼링크를 생성합니다. | @Html.ActionLink("Home", "Index", "Home") |
BeginForm() |
폼을 시작합니다. | @using (Html.BeginForm("Action", "Controller", FormMethod.Post)) { ... } |
TextBox() |
텍스트 상자 입력 컨트롤을 생성합니다. | @Html.TextBox("Name", "John Doe") |
DropDownList() |
드롭다운 목록 컨트롤을 생성합니다. | @Html.DropDownList("Category", ViewBag.Categories as SelectList) |
TextArea() |
멀티라인 입력 컨트롤을 생성합니다. | @Html.TextArea("Description") |
DisplayFor() |
모델 데이터의 형식을 지정하여 표시합니다. | @Html.DisplayFor(model => model.DateOfBirth, "{0:yyyy-MM-dd}") |