私のコードはコンパイルされ、エラーなしで実行されます。ただし、期待どおりにレンダリングされません。
その理論:
複数のレイアウトページを使用したい。
「ベース」レイアウトには、ソリューションで使用されているスタイルファイルとJavaScriptファイルのみを含める必要があります。
他のレイアウトには、htmlコンテンツまたはラッパーが含まれている必要があります。このレイアウトは現在不要に思えますが、私の上司はそれが将来の偉大さにつながることを私に保証します。複数のヘッダーがある場合や、特定のページにヘッダーやフッターがない場合など。主なことは、複数のContentLayoutを使用することですが、1つの共通のBaseLayoutを使用することです。
コード:
_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>
_ContentLayout
@{
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にレンダリングされ、指定されたスクリプト領域の外に出てしまうことです。スクリプトコードを次のレイアウトに「キック」できますか?これにより、すべてのスクリプトコードを同じ領域に配置できます。