Languege/C# & ASP.NET / / 2022. 2. 10. 10:27

[ASP.NET MVC] Razor Syntax 정리

[ASP.NET Core용 Razor]

Razor는 웹 페이지에 .NET 기반 코드를 포함하는 태그 구문입니다. Razor 구문은 Razor 태그, C# 및 HTML로 구성됩니다. Razor를 포함하는 파일의 확장명은 일반적으로 .cshtml입니다. Razor 구문은 다양한 JavaScript SPA(단일 페이지 애플리케이션) 프레임워크(예: Angular, React, VueJs 및 Svelte)의 템플릿 엔진과 비슷합니다. 

https://docs.microsoft.com/ko-kr/aspnet/core/mvc/views/razor?view=aspnetcore-6.0 

 

ASP.NET Core용 Razor 구문 참조

웹 페이지에 서버 기반 코드를 포함하는 Razor 태그 구문에 대해 알아봅니다.

docs.microsoft.com

 


 

HTML 렌더링

기본 Razor 언어는 HTML입니다. Razor 태그에서 HTML을 렌더링하는 방법은 HTML 파일에서 HTML을 렌더링하는 방법과 다르지 않습니다. 파일의 HTML 태그 .cshtmlRazor 는 서버에서 변경 되지 않은 상태로 렌더링 됩니다.

-> Razor Syntax 사용 시 실제 페이지의 소스보기에서는 렌더링 된 상태로 나오기 때문에 변수명 등이 보이지 않음.

 


사용 방법

1.암시적 Razor 식

<p>@DateTime.Now</p>
<p>@DateTime.IsLeapYear(2016)</p>

암시적 Razor식은 @으로 시작하고 그 뒤에 C#코드를 붙인다.

위 방법은 간단한 데이터를 나타내기엔 좋지만 공백이 있거나 제네릭을 포함할 수 없다.

<p>@await DoSomething("hello", "world")</p>
오류

<p>@GenericMethod<int>()</p>
오류

 

2.명시적 Razor 식

위 방법의 한계를 해결하기 위한 명시적 Razor식이다.

명시적 Razor 식은 @ 기호와 균형 잡힌 괄호로 구성됩니다. 지난 주의 시간을 렌더링하기 위해 다음 Razor 태그가 사용됩니다.

<p>Last week this time: @(DateTime.Now - TimeSpan.FromDays(7))</p>
정상 작동

 

조건 @if, else if, else

@if (value % 2 == 0)
{
    <p>The value was even.</p>
}
else if (value >= 1337)
{
    <p>The value is large.</p>
}
else
{
    <p>The value is odd and small.</p>
}

else 및 else if는 @기호를 사용하지 않아도 된다.

 

반복 @for, @foreach

@foreach (var person in people)
{
    <p>Name: @person.Name</p>
    <p>Age: @person.Age</p>
}

'Languege > C# & ASP.NET' 카테고리의 다른 글

[ASP.NET MVC] Controller 에서 View 로 데이터 전달  (0) 2022.02.10
LINQ(Language-Integrated Query)  (0) 2022.01.24
프로 ASP.NET 1~6장 후기  (0) 2022.01.06
ASP .NET 시작하기  (0) 2022.01.03
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유