Razor Expressions

  • 4 minutes to read

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}")
VisualAcademy Docs의 모든 콘텐츠, 이미지, 동영상의 저작권은 박용준에게 있습니다. 저작권법에 의해 보호를 받는 저작물이므로 무단 전재와 복제를 금합니다. 사이트의 콘텐츠를 복제하여 블로그, 웹사이트 등에 게시할 수 없습니다. 단, 링크와 SNS 공유, Youtube 동영상 공유는 허용합니다. www.VisualAcademy.com
박용준 강사의 모든 동영상 강의는 데브렉에서 독점으로 제공됩니다. www.devlec.com