我的问题是,当基础模板中定义了@RenderSection
时,我似乎无法使用嵌套模板中的@RenderSection
.目前,我有一个嵌套的基本模板,它链接到一个子模板,然后在视图页面中使用.当我在基本模板中定义@RenderSection
并在视图页面中呈现它时,它会抛出一个错误.
这就是确切的问题所在.
我想创建一个RenderSection以允许我插入自定义脚本. 我的基本模板.
<!DOCTYPE html>
<html>
<head>
<title>@ViewBag.Title</title>
@RenderSection("HeaderContent", false) // The region of the header scripts (custom css)
</head>
<body>
@RenderBody()
</body>
</html>
然后,我跳过子模板,因为我不想在其中放入任何自定义头代码,并将其应用于页面本身.
@section HeaderContent {
<script>alert("hi");</script>
}
我的问题是,我似乎无法将自定义标题代码从正常页面添加到基本模板中.
以下部分已定义,但尚未呈现在布局页面~/Views/Shared/OneColLayer.cshtml": "HeaderContent
中.
我是否需要在视图页面中包含指向基本模板的指针?
@{
Layout = "~/Views/Shared/BaseTemplate.cshtml";
}
我的新基础模板
<head>
<link rel="stylesheet" type="text/css" href="@Url.Content("~/content/layout.css")" />
<link rel="stylesheet" type="text/css" href="@Url.Content("~/content/global.css")" />
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")"></script>
<script type="text/javascript" src="@Url.Content("~/js/fadeInFadeOut.js")"></script>
<title>@ViewBag.Title</title>
@RenderSection("HeaderContent", false)
</head>
<body>
@RenderBody()
</body>
我的新子模板
@{
Layout = "~/Views/Shared/BaseTemplate.cshtml";
}
@RenderSection("HeaderContent", false)
@RenderBody()
我的观点
@{
ViewBag.Title = "Home";
Layout = "~/Views/Shared/OneColLayer.cshtml";
}
@section HeaderContent {
<h1>Left Content</h1>
}
<div>我的观点 content</div>
内容放在oneCol模板中,现在是基本模板.
后果
<div id="Content">
<h1>Left Content</h1>
</div>