gpt4 book ai didi

c# - 如何告诉 ASP.NET MVC 在文件夹中的每个 View 中包含 cshtml

转载 作者:太空宇宙 更新时间:2023-11-03 15:05:37 24 4
gpt4 key购买 nike

这是我的问题:

对于一个 Controller ProjectsController.cs我希望每个 View 都包含一些 Razor 代码。

现在我有这样的东西:

Views/Shared/_Layout.cshtml我呈现可选部分 header :

     ...</div>
</div>
@RenderSection("header", false)
<div class="container body-content">
@RenderBody()
<hr />
<footer>...

然后在我的View/Projects我创建的文件夹局部 View _ProjectsPartial.cshtml

enter image description here

我在项目文件夹标题部分的每个 View 中都包含了,所以 Views/Projects/Index.cshtmlViews/Projects/Console.cshtml这包括:

@section header
{
@Html.Partial("_ProjectsPartial")
}

它可以正常工作,但我觉得这不是实现它的方法,我需要包括这个 @section headerViews/Projects 下的每个 View 中这并不理想,因为我以后想在此文件夹中添加许多 View 。

所以我的问题是,最好的方法是什么?

我知道我可以为所有这些添加和使用 Views/Projects/_ViewStart.cshtml 的 View 使用其他布局但是我需要复制主布局代码,因为我不知道如何将一个布局合并到另一个布局中。

最佳答案

以下是您可以尝试的方法:

首先,只需将以下代码片段放入您的Views/Shared/_Layout.cshtml

@RenderSection("header", false)
@if (!IsSectionDefined("header"))
{
@Html.Partial("_ProjectsPartial")
}

然后在需要时将@section header放入您的 View 中。

@section header
{
@Html.Partial("_ProjectsPartial")
}

顺便说一句,Layout View 也是一种 View 。因此,您可以将布局视为 View ,它可以通过分配 @{ Layout = "new_layout.cshtml"; 来拥有自己的布局; }。然后您可以组合两个布局,其中没有重复的内容。

关于c# - 如何告诉 ASP.NET MVC 在文件夹中的每个 View 中包含 cshtml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43695550/

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