Не работают вложенные / наследуемые страницы макета - PullRequest
0 голосов
/ 23 сентября 2011

У меня есть следующие страницы макета

_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": "Head" **. ** 1013 1014 * Что я делаю не так?

Ответы [ 2 ]

2 голосов
/ 13 марта 2013

По сути, то же самое, что принятый ответ, но немного аккуратнее, если вам не требуется рендеринг по умолчанию: ...

@section Head
{
   @RenderSection("Head", false)
}

... где «false» указывает, что раздел не требуется.

2 голосов
/ 23 сентября 2011

_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>
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...