我有以下布局页
_StyledLayout.cshtml:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>@ViewBag.Title</title>
<script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
@RenderSection("Head", false)
</head>
<body>
@RenderBody()
</body>
</html>
_StyledPageLayout.cshtml:
@{
Layout = "~/Views/Shared/_StyledLayout.cshtml";
}
@section Head
{
<script src="@Url.Content("~/Scripts/jquery-ui.min.js")" type="text/javascript"></script>
}
@RenderBody()
Details.cshtml:
@using System.Data;
@model ASPNETMVC3.Models.ConfigModel
@{
ViewBag.Title = "Details";
Layout = "~/Views/Shared/_StyledPageLayout.cshtml";
}
@section Head
{
<script type="text/javascript">
var oTable;
$(document).ready(function () {
$(".datepicker").datepicker({ dateFormat: 'dd/mm/yy' });
});
</script>
}
<h2>
Details</h2>
在这个设置中,当我转到详细信息时,我得到错误:*以下部分已被定义,但尚未为布局页面"~/Views/Shared/_StyledPageLayout"渲染。cshtml":"头"。*
我做错了什么?
_StyledPageLayout.cshtml
:
@section Head
{
@if (IsSectionDefined("Head"))
{
// If the view contains a Head section use that instead
@RenderSection("Head")
}
else
{
// The view doesn't have a Head section => use some default output
<script src="@Url.Content("~/Scripts/jquery-ui.min.js")" type="text/javascript"></script>
}
}
与接受的答案基本相同,但如果不需要默认呈现,则更简洁一些。
@section Head
{
@RenderSection("Head", false)
}
…