Веб-страницы 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>© 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
_Layout.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]";
}