ASP.NET 웹 페이지 - 페이지 레이아웃


웹 페이지를 사용하면 일관된 레이아웃으로 웹 사이트를 쉽게 만들 수 있습니다.


일관된 모습

인터넷에서 일관된 모양과 느낌을 가진 많은 웹 사이트를 찾을 수 있습니다.

  • 모든 페이지에는 동일한 헤더가 있습니다.
  • 모든 페이지에는 동일한 바닥글이 있습니다.
  • 모든 페이지에는 동일한 스타일과 레이아웃이 있습니다.

웹 페이지를 사용하면 이 작업을 매우 효율적으로 수행할 수 있습니다. 머리글 및 바닥글과 같은 재사용 가능한 콘텐츠 블록(콘텐츠 블록)을 별도의 파일에 포함할 수 있습니다.

레이아웃 템플릿(레이아웃 파일)을 사용하여 모든 페이지에 대해 일관된 레이아웃을 정의할 수도 있습니다.


콘텐츠 블록

많은 웹 사이트에는 모든 페이지에 표시되는 콘텐츠(예: 머리글 및 바닥글)가 있습니다.

웹 페이지에서는 @RenderPage() 메서드를 사용하여 별도의 파일에서 콘텐츠를 가져올 수 있습니다.

콘텐츠 블록(다른 파일에서)은 웹 페이지 어디에서나 가져올 수 있으며 일반 웹 페이지와 마찬가지로 텍스트, 마크업 및 코드를 포함할 수 있습니다.

일반적인 머리글과 바닥글을 예로 사용하면 많은 작업을 절약할 수 있습니다. 모든 페이지에 동일한 내용을 작성할 필요는 없으며, 머리글 또는 바닥글 파일을 변경하면 모든 페이지의 내용이 업데이트됩니다.

이것은 코드에서 보이는 방식입니다:

예시

<html>
<body>
@RenderPage("header.cshtml")
<h1>Hello Web Pages</h1>
<p>This is a paragraph</p>
@RenderPage("footer.cshtml")
</body>
</html>


레이아웃 페이지 사용

이전 섹션에서 많은 웹 페이지에 동일한 콘텐츠를 포함하는 것이 쉽다는 것을 보았습니다.

일관된 모양을 만드는 또 다른 방법은 레이아웃 페이지를 사용하는 것입니다. 레이아웃 페이지는 웹 페이지의 구조를 포함하지만 내용은 포함하지 않습니다. 웹 페이지(컨텐츠 페이지)가 레이아웃 페이지에 링크되면 레이아웃 페이지(템플릿)에 따라 표시됩니다.

레이아웃 페이지는 콘텐츠 페이지가 포함될 @RenderBody() 메소드 호출을 제외하고는 일반 웹 페이지와 같습니다 .

각 콘텐츠 페이지는 Layout 지시문 으로 시작해야 합니다 .

이것은 코드에서 보이는 방식입니다:

레이아웃 페이지:

<html>
<body>
<p>This is header text</p>
@RenderBody()
<p>&copy; 2014 W3Schools. All rights reserved.</p>
</body>
</html>

모든 웹 페이지:

@{Layout="Layout.cshtml";}

<h1>Welcome to W3Schools</h1>

<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit,sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laborisnisi ut aliquip ex ea commodo consequat.
</p>

건조 - 자신을 반복하지 마십시오

두 가지 ASP.NET 도구인 콘텐츠 블록과 레이아웃 페이지를 사용하여 웹 응용 프로그램에 일관된 모양을 제공할 수 있습니다.

또한 이러한 도구를 사용하면 모든 페이지에서 동일한 정보를 반복할 필요가 없기 때문에 많은 작업을 절약할 수 있습니다. 마크업, 스타일 및 코드를 중앙 집중화하면 웹 응용 프로그램을 훨씬 더 쉽게 관리하고 유지 관리할 수 있습니다.


파일 탐색 방지

ASP.NET을 사용하면 이름이 밑줄로 시작하는 파일을 웹에서 찾아볼 수 없습니다.

콘텐츠 블록 또는 레이아웃 파일이 사용자에게 표시되지 않도록 하려면 파일 이름을 다음과 같이 변경합니다.

_header.cshtml

_footer.cshtml

_레이아웃.cshtml


민감한 정보 숨기기

ASP.NET에서 민감한 정보(데이터베이스 암호, 전자 메일 암호 등)를 숨기는 일반적인 방법은 "_AppStart"라는 별도의 파일에 정보를 보관하는 것입니다.

_AppStart.cshtml

@{
WebMail.SmtpServer = "mailserver.example.com";
WebMail.EnableSsl = true;
WebMail.UserName = "[email protected]";
WebMail.Password = "your-password";
WebMail.From = "[email protected]";
}