我找不到让@section和@RenderSection()使用多级布局的方法。在我的项目中,我定义了布局的层次结构:
〜/查看/共享/ _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()
〜查看/资料/ Edit.cshtml:
@model ...
@{
Layout = "~/Views/Shared/_CreateEditLayout.cshtml";
}
@section JavaScript {
<script type="text/javascript">
jQuery(document).ready(function ($) {
// lots of funny JS
});
</script>
}
我的问题是,只需定义@section JavaScript { }
(没有必要在部分内编写标记或JavaScript)就可以了解我的Edit.cshtml
停止渲染。错误如下:已定义以下部分,但尚未为布局页面“〜/ Views / Shared / _CateEditLayout.cshtml”:“JavaScript”呈现。
任何想法出了什么问题?提前谢谢。