【发布时间】:2012-09-19 14:54:18
【问题描述】:
我找不到使@section 和@RenderSection() 与多级布局一起工作的方法。在我的项目中,我定义了布局层次结构:
~/Views/Shared/_Layout.cshtml:
<!DOCTYPE html>
<html>
<head>
<meta ... />
<meta ... />
<link href="..." rel="stylesheet" type="text/css" />
<link href="..." rel="stylesheet" type="text/css" />
@RenderSection("Stylesheet", false)
</head>
<body>
<!-- lots of markup -->
@RenderBody()
<!-- more markup -->
<script src="..." type="text/javascript" />
<script src="..." type="text/javascript" />
@RenderSection("JavaScript", false)
</body>
</html>
~/Views/Shared/_BaseLayout.cshtml(没有 JavaScript 或样式表部分的定义):
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
<!-- lots of markup -->
@RenderBody()
~/Views/Shared/_CreateEditLayout.cshtml(同样,没有定义 JavaScript 或样式表):
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
<!-- lots of markup -->
@RenderBody()
~Views/Profile/Edit.cshtml:
@model ...
@{
Layout = "~/Views/Shared/_CreateEditLayout.cshtml";
}
@section JavaScript {
<script type="text/javascript">
jQuery(document).ready(function ($) {
// lots of funny JS
});
</script>
}
我的问题是,为我的Edit.cshtml 停止渲染定义@section JavaScript { }(不必在该部分内编写标记或JavaScript)就足够了。错误如下:以下部分已定义但尚未为布局页面“~/Views/Shared/_CreateEditLayout.cshtml”呈现:“JavaScript”。
有什么想法吗?提前致谢。
【问题讨论】:
标签: asp.net-mvc-3 layout