본문 바로가기

카테고리 없음

Razor : C#과 HTML을 함께 쓰는 뷰 템플릿

 

웹 개발을 하다 보면 HTML 안에서 동적으로 데이터를 보여줘야 할 일이 많다. ASP.NET에서는 이를 위해 Razor 문법을 사용한다. Razor는 C# 코드와 HTML을 자연스럽게 섞을 수 있도록 도와주는 뷰 템플릿 엔진이다.

이번 글에서는 Razor 문법의 기본 개념과 함께 예제를 통해 어떻게 동작하는지 알아보자.


Razor에서 @의 의미

Razor 문법에서 가장 중요한 키워드는 @이다.

@ 기호는 "여기부터 C# 코드야!"라고 Razor에게 알려주는 역할을 한다.

간단한 예를 보자.

<p>현재 시간: @DateTime.Now</p>

위 코드는 HTML <p> 태그 안에서 DateTime.Now라는 C# 속성의 값을 출력한다. 결과적으로는 다음과 같은 HTML로 렌더링된다.

<p>현재 시간: 2025-06-22 오후 9:34:00</p>

 코드 블록: @{}

HTML 영역 외부에서 C# 코드를 실행하고 싶을 땐 @{} 블록을 사용한다.

예를 들어, 뷰 상단에서 변수들을 정의할 수 있다.

이렇게 정의한 변수는 HTML 안에서 @title 또는 @titleB로 출력할 수 있다.


 조건문과 제어문도 C#처럼 사용 가능

Razor에서는 if, for, switch 같은 제어문도 @를 붙여 그대로 사용할 수 있다.

다음은 실제 코드 예시다:

위 코드는 nation이라는 변수 값을 기준으로 조건에 맞는 인사말을 출력한다.
nation = "korea"일 경우 렌더링 결과는 다음과 같다:

 


 Razor의 특징 정리

 

기능  설명 예시
C# 변수 선언 @{} 블록 내부에서 선언 @{ var name = "joe"; }
C# 코드 출력 HTML 안에서 출력 <p>@name</p>
조건문 @if, @switch 등 사용 가능 @if (isAdmin) { ... }
반복문 @for, @foreach 사용 가능 @foreach (var i in list) { ... }