.net 嵌套/继承布局页不工作
我有以下的布局页面 _StyledLayout.cshtml:.net 嵌套/继承布局页不工作,.net,asp.net,asp.net-mvc,asp.net-mvc-3,.net,Asp.net,Asp.net Mvc,Asp.net Mvc 3,我有以下的布局页面 _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="tex
<!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>
@{
Layout = "~/Views/Shared/_StyledLayout.cshtml";
}
@section Head
{
<script src="@Url.Content("~/Scripts/jquery-ui.min.js")" type="text/javascript"></script>
}
@RenderBody()
@视图包。标题
@渲染部分(“头部”,假)
@RenderBody()
_StyledPageLayout.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>
@{
Layout = "~/Views/Shared/_StyledLayout.cshtml";
}
@section Head
{
<script src="@Url.Content("~/Scripts/jquery-ui.min.js")" type="text/javascript"></script>
}
@RenderBody()
@{
Layout=“~/Views/Shared/_StyledLayout.cshtml”;
}
@科长
{
}
@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>
@使用系统数据;
@型号ASPNETMVC3.Models.ConfigModel
@{
ViewBag.Title=“详细信息”;
Layout=“~/Views/Shared/_StyledPageLayout.cshtml”;
}
@科长
{
可变的;
$(文档).ready(函数(){
$(“.datepicker”).datepicker({dateFormat:'dd/mm/yy'});
});
}
细节
在这个设置中,当我转到“详细信息”时,我得到一个错误:*以下部分已经定义,但尚未呈现在布局页面“~/Views/Shared/_StyledPageLayout.cshtml”:“Head”。*
我做错了什么?
\u 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>
}
}
@段头
{
@如果(定义为“头部”)
{
//如果视图包含头部截面,请改用该截面
@渲染部分(“头”)
}
其他的
{
//视图没有Head部分=>使用一些默认输出
}
}
\u 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>
}
}
@段头
{
@如果(定义为“头部”)
{
//如果视图包含头部截面,请改用该截面
@渲染部分(“头”)
}
其他的
{
//视图没有Head部分=>使用一些默认输出
}
}
基本上与公认的答案相同,但如果不需要默认渲染,则会更整洁一些
@section Head
{
@RenderSection("Head", false)
}
…其中“false”表示不需要该部分。基本上与接受的答案相同,但如果不需要默认渲染,则会更整洁一些
@section Head
{
@RenderSection("Head", false)
}
…如果“false”表示不需要该节。那么我必须复制这些节吗?我希望StyledPageLayout会采用StyledPage中的任何内容,然后细节会将这2个内容与它想要添加到head部分的任何内容结合起来。例如,我不想在各种视图中引用jquery.ui,但可能视图不支持继承,那么我必须复制这些部分吗?我希望StyledPageLayout会采用StyledPage中的任何内容,然后细节会将这2个内容与它想要添加到head部分的任何内容结合起来。例如,我不想在各种视图中引用jquery.ui,但视图可能不支持继承