Phantom Programming 팬텀 프로그래밍
  • ASP.NET Razor Pages의 Page Model에 대하
    2024년 11월 19일 20시 20분 18초에 업로드 된 글입니다.
    작성자: Devrun
    반응형

     

    웹을 개발하는 개발자들 중에 Page 모델이라는 단어는 처음들어 보는 사람도 있을 것이다. MVVM패턴에서 보면 View와 View Model 그리고 Model을 가지고 있는데 이는 뷰와 모델을 분리하여 코드를 만든다. 이러한 방식이 Razor Page에도 있다. 그것을 우리는 Page Model이라고 부른다. 보통 ASP.NET에서는 MVC 패턴을 주로 사용한다. 그러나 일단 Razor Pages를 배우고 있으니 Page Model부터 보자.

     

    1) Razor Pages에서 Page Model 이란?

    Page Model은 View와 분리되어 백엔드 로직을 담당하는 크래스를 말한다. 이 것을 통해 HTML과 데이터 처리 및 비지니스 로직이 분리되어 사용할 수 있다. 

     

    Page Model의 특이점은 다른 것과 달리 View와 같은 폴더에 Page Model이 존재하며 .cshtml 확장자를 가진 C# html 파일이다. PageModel은 Method, Property, State Management 등의 기능을 담당한다. Page Model을 사용하는 이유는 View에서는 UI 로직만 관리하고 모든 데이터 처리와 이벤트는 Page Model에서 수행하기 위해서 이며, 코드의 가독성과 유지보수성이 향상된다.

     

    Page Model의 예제

    using Microsoft.AspNetCore.Mvc.RazorPages;
    
    public class IndexModel : PageModel
    {
        public string WelcomeMessage { get; set; }
    
        public void OnGet()
        {
            // 데이터 초기화 또는 로직 처리
            WelcomeMessage = "Welcome to Razor Pages!";
        }
    }

     

    위 코드와 같이 전형적인 C# 코드를 사용하는 구조이며 아래는 .cshtml의 View 파일이다.

    @page
    @model IndexModel
    <!DOCTYPE html>
    <html>
    <body>
        <h1>@Model.WelcomeMessage</h1>
    </body>
    </html>

     

    코드를 완전히 분리하여 데이터 처리와 이벤트 처리는 Page Model에서 하지만 View 파일에서 사용된다. 이 처럼 분리하기 위해 존재하는 것이 Page Model이다. 이 것을 공부하면서 느끼는 것은 MVVM에서 View Model 여기에 해당하지 않을까 한다.

    반응형
    댓글