본문 바로가기
ASP.NET Core

ASP.NET Core Razor Pages] 1. 설명, 템플릿 구조, MVC와 차이점

by Fastlane 2023. 2. 20.
728x90
반응형

Razor Pages는 ASP.NET Core 2.0의 새로운 기능이다. 로직과 view model을 view 구현 code에 가깝게 하면서 ASP.NET Core app을 개발할 수 있는 간단한 방법이다. 또한, 크고 복잡한 ASP.NET Core apps의 구조 향상에도 Razor Pages를 사용할 수 있다. 

 

MVC pattern은 사용한지 오래된 UI pattern으로 많은 장점이 있지만, MVC 기본 프로젝트 템플릿 패턴은 앱이 커지면서, 수많은 파일과 폴더를 만든다. Razor Pages는 특별히 page-based 컨셉의 동일한 문제에 새롭고 다른 방식을 제공한다. 거의 static view 또는 POST-Redirect-GET 방식의 단순한 form을 갖는 경우에 유용하다. 

 

MVC와 Razor Pages의 기본 템플릿 구조를 살펴보자. 

  • MVC

 

Pages는 ASP.NET Core MVC의 일부이므로, ASP.NET Core MVC app에 단순히 Pages 폴더를 추가하고 Razor Pages files을 추가하므로 Pages를 사용할 수 있다. 

  • Razor Pages

Controllers, Views 폴더가 없다. Razor Pages는 Pages 폴더에서 app에 필요한 모든 page를 갖는다. 

 

Razor Pages는 routing reqeust에 맞는 folder 구조를 갖는다. MVC app의 default page가 "/", "/Home", "/Home/Index"로 접속할 수 있는 반면, Razor Pages는 "/", "/Index"로 매칭된다. 

 

하위폴더의 사용은 app의 별도 section을 생성하는 직관적인 방법이다. 모든 폴더는 root page로 Index.cshtml 파일을 가질 수 있다. 

 

cshtml파일을 보면 새로운 지시어 '@page'를 볼 수 있다. 이 지시어는 page file의 첫줄에 항상 있어야 하며 파일 확장자는 .cshtml을 사용해야 한다. Razor Pages는 Razor-based View files과 상당히 비슷하다. 

 

Index.cshtml

@page
@model IndexModel
@{
    ViewData["Title"] = "Home page";
}

<div class="text-center">
    <h1 class="display-4">Welcome</h1>
    <p>Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>
</div>

 

728x90

 

Razor Pages는 캡슐화, UI그룹핑을 할 수 있다. inline 또는 별도 class page models을 제공한다. handlers를 제공하여, 별도의 controller와 action methods가 필요하지 않다. 이러한 특성이 MVC app과 비교했을 때, 별도의 폴더와 파일 수를 줄여준다. 

 

728x90
반응형

댓글