gpt4 book ai didi

c# - 从 Spark 迁移到 Razor

转载 作者:行者123 更新时间:2023-11-30 15:07:26 25 4
gpt4 key购买 nike

我们正在逐步将基于 Spark 的项目迁移到使用 Razor,我遇到了一些我似乎无法找到答案的问题。

我在我的 Spark master 中的行调用了一个 subview

<Sidebar>   
<segment name="header">
<div> <!-- header content--> </div>
</segment>
<segment name="content">
<div> <!-- content content--> </div>
</segment>
</Sidebar>

侧边栏 Spark 看起来像这样

<div id="sidebar" >
<div class="header">
<render segment="header">
<!-- placeholder -->
</render>
</div>
<div class="ui-layout-content content">
<render segment="content">
<!-- placeholder -->
</render>
</div>

这会在第二部分的布局中显示第一部分的内容。有什么方法可以使用 Razor 重新创建它吗?我可以看到我需要使用 Partials,但看不到如何将内容传递到侧边栏 subview 中。

本质上,我正在尝试重新创建 Spark 调用段(或以前的部分)的功能 http://sparkviewengine.com/reference/elements#segmentpreviouslyknownassection

编辑:更多信息。我有一个从 Application.cshtml 获取其布局的 Index.cshtml。在这里,我有进入 Sidebar.cshtml 部分的标记代码。

如果我在我的 Index.cshtml 文件中添加 put @section header(在 Sidebar.cshtml 中呈现),它不会将其识别为有效部分。我的 Sidebar.cshtml 文件中有 @RenderSection("header", false)

我如何将这 2 个联系在一起?

所以我的层次结构如下

Application.cshtml -- 全局页面布局
Index.cshtml -- 包括侧边栏内容的页面布局
Sidebar.cshtml -- 来自 Index.cshtml 的侧边栏内容的模板/布局

例如

在 Index.cshtml 中

    @RenderPage("Sidebar") 
@section SidebarHeader { <!--Title or something --> }
@section SidebarContent { <!--Content --> }

然后在 Sidebar.cshtml 中

    <div class="header">
@RenderSection("SidebarHeader", false)
</div>
<div class="ui-layout-content content">
@RenderSection("SidebarContent", false)
</div>

我的想法是,我可以在 subview 中有一个模板,其中填充了 View 中的内容。这意味着我可以为整个站点的其他页面模板区域。例如。另一个页面上的侧边栏内容将需要相同的格式,但内容不同。

最佳答案

您可以使用 Layouts 和 Sections 来完成相同的任务。在此处查看详细信息:http://weblogs.asp.net/scottgu/archive/2010/12/30/asp-net-mvc-3-layouts-and-sections-with-razor.aspx

索引.cshtml:

@RenderSection("Sidebar")

您的 sidebar.cshtml 将如下所示:

<div id="sidebar" >
<div class="header">
@RenderSection("header", required: false)
</div>
<div class="ui-layout-content content">
@RenderSection("content", required: false)
</div>
</div>

像这样的 subview (您也可以将它们定义为一个,但从长远来看,将它们分开可能会更好):

subview .cshtml:

    @section header {
<div> <!-- header content--> </div>

}

@section content {
<div> <!-- content content--> </div>

}

关于c# - 从 Spark 迁移到 Razor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6585537/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com