Мой код компилируется и работает без ошибок; однако он не отображается так, как я ожидал.
Теория:
Я хочу использовать несколько страниц макета.
«Базовый» макет должен включать только файлы стилей и javascript, которые используются решением.
Другой макет должен иметь html-контент или обертки. Этот план сейчас кажется излишним, но мой начальник уверяет меня, что он приведет к будущему величию. Например, наличие нескольких заголовков или возможность не иметь верхних или нижних колонтитулов на определенных страницах. Главное — иметь несколько ContentLayout, но один общий BaseLayout
. Кодекс:
_Базовый макет
<html>
<head>
<link href="@Url.Content("~/Content/css/main.css")" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="@Url.Content("~/Scripts/common.js")"></script>
@RenderSection("JavaScript", false)
@RenderSection("Css", false)
</head>
<body>
@RenderBody()
</body>
</html>
_КонтентМакет
@{
Layout = "~/Views/Shared/_BaseLayout.cshtml";
}
@RenderSection("JavaScript", false)
@RenderSection("Css", false)
<div class="page">
<section class="wrapper">
@RenderBody()
</section>
</div>
View.cshtml
@{
Layout = "~/Views/Shared/_ContentLayout.cshtml";
}
@section JavaScript
{
<script type="text/javascript">
(function ($) {
$(function () {
//do stuff;
});
} (jQuery));
</script>
}
<div>
//html content
</div>
Как я уже говорил ранее, это работает. Проблема заключается в том, что когда я просматриваю исходный код страницы, сценарий из представления отображается в _ContentLayout и, таким образом, выходит за пределы обозначенной области сценария. Можно ли "кинуть" код скрипта на следующий макет? Это позволит разместить весь код скрипта в одной области.