웹 개발을 하다 보면 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) { ... } |