웹페이지 레이아웃
ASP.NET 웹 페이지 - 페이지 레이아웃
웹 페이지를 사용하면 일관되게 배치된 웹 사이트를 만드는 것이 쉽습니다.
일관된 모양
인터넷에서는 많은 웹사이트가 일관된 모양과 느낌을 갖고 있음을 알 수 있습니다.
모든 페이지의 헤더가 동일합니다.
모든 페이지의 하단이 동일합니다
모든 페이지 동일한 스타일과 레이아웃을 가지고 있습니다
웹 페이지를 사용하면 이 작업을 매우 효율적으로 수행할 수 있습니다. 재사용된 콘텐츠 블록(예: 페이지 머리글 및 바닥글)을 별도의 파일에 작성할 수 있습니다.
레이아웃 템플릿(레이아웃 파일)을 사용하여 사이트의 모든 페이지에 대해 일관된 레이아웃을 정의할 수도 있습니다.
콘텐츠 블록
많은 웹사이트에는 사이트의 모든 페이지(예: 페이지 헤더 및 하단)에 표시되는 일부 콘텐츠가 있습니다.
웹 페이지에서는 @RenderPage() 메서드를 사용하여 다양한 파일에서 콘텐츠를 가져올 수 있습니다.
다른 파일의 콘텐츠 블록을 웹 페이지의 어느 곳에서나 가져올 수 있습니다. 콘텐츠 블록에는 일반 웹 페이지와 마찬가지로 텍스트, 마크업 및 코드가 포함될 수 있습니다.
공통 헤더와 하단을 별도의 파일에 작성하면 많은 작업이 절약됩니다. 모든 페이지에 동일한 내용을 작성할 필요는 없으며, 내용이 변경될 때 헤더나 하단 파일만 수정하면 사이트 내 각 페이지의 해당 내용이 업데이트된 것을 확인할 수 있습니다.
다음은 코드에서 어떻게 보이는지 보여줍니다.
Instance
<html> <body> @RenderPage("header.cshtml") <h1>Hello Web Pages</h1> <p>This is a paragraph</p> @RenderPage("footer.cshtml") </body> </html>
Run Instance»
온라인 예제를 보려면 "인스턴스 실행" 버튼을 클릭하세요
레이아웃 페이지
이전에서 섹션에서 동일한 콘텐츠를 여러 웹 페이지에 표시하는 것이 매우 쉽다는 것을 확인했습니다.
일관적인 모양을 만드는 또 다른 방법은 레이아웃 페이지를 사용하는 것입니다. 레이아웃 페이지에는 콘텐츠가 아닌 웹 페이지의 구조가 포함됩니다. 웹 페이지(컨텐츠 페이지)가 레이아웃 페이지에 연결되면 레이아웃 페이지(템플릿)의 구조에 따라 표시됩니다.
@RenderBody() 메소드는 레이아웃 페이지에서 콘텐츠 페이지를 삽입하는 데 사용됩니다. 그 외에는 일반 웹 페이지와 다르지 않습니다.
모든 콘텐츠 페이지는 레이아웃 지시어로 시작해야 합니다.
코드로 렌더링되는 방법은 다음과 같습니다.
레이아웃 페이지:
<body>
<p>이것은 헤더 텍스트입니다</p>
@RenderBody()
< ;p>© 2012 W3Cschool. 모든 권리 보유.
인스턴스 실행»
온라인 인스턴스를 보려면 "인스턴스 실행" 버튼을 클릭하세요.
D.R.Y. - 반복하지 마세요
콘텐츠 블록 및 레이아웃 페이지를 통해(레이아웃 페이지) ASP.NET 도구를 사용하면 웹 응용 프로그램에 일관된 모양을 부여할 수 있습니다.
이 두 도구를 사용하면 많은 작업을 줄일 수 있으므로 모든 페이지에서 동일한 정보를 반복할 필요가 없습니다. 중앙 집중식 마크업, 스타일 및 코드를 사용하면 웹 애플리케이션을 더 쉽게 관리하고 유지할 수 있습니다.
파일 표시 방지
ASP.NET에서 밑줄로 시작하는 파일 이름을 사용하면 해당 파일을 온라인에서 볼 수 없습니다.
콘텐츠 블록이나 레이아웃 페이지가 사용자에게 표시되지 않도록 하려면 다음 파일의 이름을 바꿀 수 있습니다.
_header.cshtm
_footer.cshtml
_Layout.cshtml
민감한 정보 숨기기
ASP.NET에서 중요한 정보(데이터베이스 비밀번호, 이메일 비밀번호 등)를 숨기는 가장 일반적인 방법은 이 정보를 "_AppStart"라는 별도의 파일에 저장하는 것입니다.
_AppStart.cshtml
WebMail.SmtpServer = "mailserver.example.com";
WebMail.EnableSsl = true;
WebMail.UserName = "username@example.com";
WebMail.Password = "귀하의 -password";
WebMail.From = "your-name-here@example.com";
}