从嵌套母版页设置超级简单视图引擎部分

时间:2017-03-20 11:00:16

标签: nancy viewengine

我正在构建一个Web应用程序,并使用Nancy和Super Simple视图引擎为用户呈现内容。由于很多页面都有相同的布局(标题,侧面菜单等),因此我在主页面中分离了可重复使用的内容。

目前我有

--Root_file (Master page)
   --Home
   --Products
   --Contact
   --Account (Master page)
     --Overview
     --Manage
     --Post

root_file下的所有文件都有@Master['root_file.html']引用。帐户下的所有文件都有@Master['account.html']

现在我的问题是,对于Account下的Manage,我想将js-script设置为附加标头。我想,通过引用顶级母版页中的标记,我可以通过引用添加js。

这是一个概述。

Root_file.html
<head>
    <title>Nice little title.</title>
    @Partial['PartialView/header_references.html']
    @Section['Additional_headers'];
</head>
<body>
    @Section['Content'];
</body>

account.html
@Master['root_file.html']

@Section['Content']
    <div class="container">
        <div class="row justify-content-center">
            @Partial['PartialView/side_menu.html']
            <div class="col p-3">
                @Section['Inner_content'];
            </div>
        </div>
    </div>
@EndSection

manage.html
@Master['account/overview.html']
@Section['Additional_headers']
    <script src="../../../Content/scripts/file-upload.js"></script>
@EndSection

我希望我可以通过嵌套母版页设置@Section[Additional_headers],但结果并不能反映我的希望。

我做错了什么,或者不能设置这样的部分?

1 个答案:

答案 0 :(得分:0)

这是一个老问题,我想你在其他地方得到了这个答案,但也许其他人有同样的问题。 我最终在子页面中包含了新主页的占位符。它不是很漂亮,但它完成了工作。

在您的html页面中,您可以参考

@Section['Additional_headers']

相反,您可以在包含在新占位符中的子母版页中引用它,例如:

@Section['Additional_headers']
@Section['Sub_Additional_headers']
@EndSection

然后,您可以在任何基础html页面中引用此新部分,例如

@Section['Sub_Additional_headers']
<label>This is in a nested master page</label>
@EndSection

要重复使用上面的示例,它将看起来像这样

Root_file.html
<head>
    <title>Nice little title.</title>
    @Partial['PartialView/header_references.html']
    @Section['Additional_headers'];
</head>
<body>
@Section['Content'];
</body>

account.html
@Master['root_file.html']

@Section['Additional_headers']
@Section['Sub_Additional_headers']
@EndSection

@Section['Content']
<div class="container">
    <div class="row justify-content-center">
        @Partial['PartialView/side_menu.html']
        <div class="col p-3">
            @Section['Inner_content'];
        </div>
    </div>
</div>
@EndSection

manage.html
@Master['account/overview.html']
@Section['Sub_Additional_headers']
<script src="../../../Content/scripts/file-upload.js"></script>
@EndSection