본문 바로가기

C#/ASP.NET Core

ASP.NET Core MVC 레이아웃

728x90
728x90

_Layout 

언더바 _ 가 접미사로 붙는 파일은 혼자 작동하는 것이 아닌 다른 파일에 포함되어 실행되는 페이지

_Layout.cshtml
전체 웹 페이지의 공통 레이아웃 담당
반복되는 페이지 기본 구성 요소 구현, 특정 뷰 페이지에서 레이아웃을 사용하지 않으려면 @{Layout=null;}

_ViewStart.cshtml

모든 뷰가 렌더링되기 전에 제일 먼저 호출되는 페이지, 모든 페이지에 적용될 레이아웃 설정에 사용
각각의 뷰 페이지에서 매번 Layout 속성에 값을 지정하는 대신 한 번만 지정해 레이아웃 적용
Views 폴더에 위치해 _ViewStart 파일에 설정한 내용은 Shared, Home 등의 폴더에 모두 적용됩니다.
ASP.NET Core MVC 기본 템플릿으로 적용되어 나오는 페이지이며, 프로젝트에서 항상 사용하는 페이지이므로
공통 레이아웃반드시 이 곳에 정의합니다.

_ViewImports.cshtml

모든 뷰에서 특정 네임스페이스를 using 구문으로 기록해 설정하는 파일
이 페이지에 @using DotNetNote.Models 코드를 포함해 놓으면 다른 뷰 페이지에서 Models 폴더에 있는 클래스를 참조할 때 매번 @using 구문을 사용해서 코드를 작성할 필요가 없습니다.

부분 뷰
하나 이상의 뷰 페이지에서 호출되는 뷰 페이지
언더바 _ 로 시작하는 cshtml 파일이 일반적으로 부분 뷰 페이지 입니다.
- 부분 뷰 페이지를 특정 페이지에 포함하고자 할 땐 Html.Partial() 헬퍼 메서드를 사용합니다.
- @await Html.PartialAsync() 메서드는 비동기로 호출할 때 사용되는 헬퍼 메서드입니다.


<environment /> 태그 헬퍼
_Layout.cshtml 파일에서 사용되고 있는 태그 헬퍼
특정 CSS 또는  JS 파일에 대한 링크 개발환경, 스테이징 환경, 프로덕션 환경의 세 가지 상태에 맞게 서로 다름 방법으로 적용하고자 할 때 사용 
개발 환경일 때는 로컬에 있는 CSS JS 파일을 사용하고, 실제 서비스 환경일 때는 공개된 CDN을 사용해 속도를 향상시키는 등의 기능을 구현 가능 

더보기

개발 
- 개발 단계, 서비스되기 전에 로컬 컴퓨터에서 VS로 개발하는 단계일 때는 주로 로컬에 있는 리소스를 읽어온다.

 

스테이징 
-
대기 실행 장소, 애저와 같은 배포 환경에서는 실제 운영 전에 대기로 실행해 놓고, 옮겨 바꾸기 방법으로 스테이징의 앱을 프로덕션으로 옮겨 사용자의 끊김 현상을 없앨 수 있다.

프로덕션
- 실제 운영, 실제로 서비스를 제공하고 있는 단계, 페이지 로딩 성능을 위해 주요 CSS  JS 코드는 브라우저 캐싱을 사용할 수 있는 CDN의 자료를 사용한다.

레이아웃 관련 메서드

RenderBody( )

레이아웃을 사용하는 각각의 페이지에서 필요한 내용을 구현하는 영역, 각각의 뷰 내용이 여기서 실행됨을 의미

RenderSection( )

Scripts, Banners, Sidebars 등 특정한 섹션 추가 가능, 섹션 이름을 사용해 뷰에 섹션별로 다른 내용을 추가해
부분적으로 사용될 영역을 지정하는데 주로 사용 
두 번째 매개 변수인 required 속성이 false이면, 반드시 하위 페이지에서 해당 섹션을 구현할 필요 없음을 의미

다음과 같이 레이아웃을 지정해 사용하면 공통 기능을 딱 한 번만 만들고 재사용할 수 있고,
공통 레이아웃을 제외한 각각의 페이지 전용 기능만을 따로 표현하면 유지 보수가 수월해집니다.

728x90
728x90

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

ASP.NET Core MVC 게시판 만들기_2 / DB 연결  (0) 2022.12.05
ASP.NET Core MVC 게시판 만들기_1  (0) 2022.11.24
ASP.NET Core MVC URL 라우팅  (0) 2022.11.18
ASP.NET Core MVC 프로젝트 생성  (0) 2022.11.17
ASP.NET Core MVC  (0) 2022.11.16