Мастер-страницы на HTML5

Лекция



Привет, сегодня поговорим про мастер-страницы на html5, обещаю рассказать все что знаю. Для того чтобы лучше понимать что такое мастер-страницы на html5 , настоятельно рекомендую прочитать все из категории Дизайн программных UI и Web дизаин.

Для создания единообразного вида сайта применяются мастер-страницы. Мастер-страницы - это по сути те же самые представления. Мы можем определить на мастер-странице некоторые элементы, которые будут отображаться на всех страницах сайта. А также мы можем определить заполнители или плейсхолдеры, содержание которых обеспечивают другие представления.

При создании первого приложения в предыдущих главах мы использовали следующую мастер-страницу _Layout.chtml:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>@ViewBag.Title</title>
    <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
</head>
 
<body>
    <nav>
        <ul class="menu">
            <li>@Html.ActionLink("Главная", "Index", "Home")</li>
        </ul>
    </nav>
    @RenderBody()
</body>
</html>

На вид это обычное представление за одним исключением - вызова метода @RenderBody(). Этот вызов является плейсхолдером, на место которого другие представления, которые используют эту мастер-страницу, будут подставлять свое содержимое. И таким образом, мы можем легко установить для представлений веб-приложения единообразный стиль.

Чтобы применить мастер-страницу к представлению, мы должны в секции Layout указать путь к мастер-странице. Например, наше представление Index.cshtml, использующее эту мастер-страницу, начинается так:

1
2
3
@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

Если мы не используем мастер-страницу, то мы указываем Layout = null;.

Мастер-страница может иметь несколько секций, куда представления могут поместить свое содержимое. Об этом говорит сайт https://intellect.icu . Например, добавим к мастер-странице секцию footer:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>@ViewBag.Title</title>
    <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
</head>
 
<body>
    <nav>
        <ul class="menu">
            <li>@Html.ActionLink("Главная", "Index", "Home")</li>
        </ul>
    </nav>
    @RenderBody()
    <footer>@RenderSection("Footer")</footer>
</body>
</html>

Теперь при запуске предыдущего представления Index мы получим ошибку, так как секция Footer не определена. По умолчанию представление должно передавать содержание для каждой секции мастер-страницы. Поэтому добавим вниз представления Index секцию footer. Это мы можем сделать с помощью выражения @section:

1
2
3
4
5
6
7
@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}
<!-- здесь остальное содержание -->
@section Footer {
    Все права защищены. Syte Corp. 2012.
}

Однако, при таком подходе, если у нас есть куча представлений, и мы вдруг захотели определить новую секцию на мастер-странице, нам придется изменить все имеющиеся представления, что не очень удобно. Но мастер-страницы предлагают нам варианты гибкой настройки секций.

Первый вариант заключается в использовании перегруженной версии метода RenderSection, которая позволяет указать, что данную секцию не обязательно определять в представлении. Чтобы отметить секцию Footer в качестве необязательной, надо передать в метод в качестве второго параметра значение false:

1
<footer>@RenderSection("Footer", false)</footer>

Второй вариант позволяет задать содержание секции по умолчанию, если данная секция не определена в представлении:

1
2
3
4
5
6
7
8
9
<footer>
    @if (IsSectionDefined("Footer")) {
        @RenderSection("Footer")
    }
    else
    {
        <span>Содержание элемента footer по умолчанию.</span>  
    }
</footer>

ViewStart

Если у нас в проекте пара-тройка представлений, мы легко можем изменить для каждого описание мастер-страницы в секции Layout, если, например, мы решим использовать другую мастер-страницу. Однако, если у нас много представлений, то это делать будет не очень удобно.

Для более гибкой настройки представлений предназначена страница _ViewStart.cshtml. Код этой страницы выполняется до кода любого из представлений, расположенных в том же каталоге. Данный файл последовательно применяется к каждому представлению, находящемуся в одном каталоге.

При создании проекта ASP.NET MVC 3/4 по шаблону Basic или Internet в каталоге Views уже находится файл _ViewStart.cshtml. Этот файл определяет мастер-страницу, используемую по умолчанию. При создании нового проекта ASP.NET MVC 3/4 по шаблону Empty, нам надо добавить новое представление _ViewStart.cshtml в папку Views и удалить весь ранее автоматически сгенерированный текст и добавить туда следующие строки:

1
2
3
@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

Этот код выполняется до любого другого кода, определенного в представлении, поэтому из других представлений мы можем удалить секцию Layout. Если же представление должно использовать другую мастер-страницу, то мы просто переопределяем свойство Layout, дописывая его определение в начало представления.

 

 

если же не использовать майкрософт то 

<!DOCTYPE html>

<html>

<head>

    <meta charset=utf-8>

    <title>мой сайт</title>

   

</head>

<body>

<header>

    Шапка сайта

</header>

<nav>

    Меню сайта

</nav>

<section>

    <article>

        <header>

            Заголовок статьи

        </header>

        Статья с рыбным текстом

 

    </article>

    <article>

        <header>

                        Заголовок статьи

        </header>

                Статья с рыбным текстом

    </article>

</section>

<aside>

    сайдбар с дополнительными блоками

</aside>

<footer>

    Подвал сайта

</footer>

</body>

</html>

 

Надеюсь, эта статья про мастер-страницы на html5, была вам полезна, счастья и удачи в ваших начинаниях! Надеюсь, что теперь ты понял что такое мастер-страницы на html5 и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Дизайн программных UI и Web дизаин

Из статьи мы узнали кратко, но содержательно про мастер-страницы на html5
создано: 2015-03-23
обновлено: 2021-03-13
132533



Рейтиг 2 of 10. count vote: 2
Вы довольны ?:
Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей



Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Дизайн программных UI и Web дизаин

Термины: Дизайн программных UI и Web дизаин