C# MVC-如何为特定文件夹使用另一个更新的_布局和_ViewStart文件?

C# MVC-如何为特定文件夹使用另一个更新的_布局和_ViewStart文件?,c#,asp.net-mvc,razor,model-view-controller,asp.net-mvc-5,C#,Asp.net Mvc,Razor,Model View Controller,Asp.net Mvc 5,如下图所示,我的MVC站点在我的视图文件夹的根目录中包含_ViewStart.cshtml文件,该文件使用共享文件夹中的_Layout.cshtml来共享页眉和页脚的布局。但是每一页的主要内容是不同的 但现在我的分类文件夹页面有了相同的主内容布局。因此,我的问题是,如何使用另一个更新的_Layout和_ViewStart文件作为类别文件夹页面,这些页面也使用my _Layout.cshtml和_ViewStart.cshtml文件的页眉和页脚,或者我需要为类别文件夹中的每个页面指定相同的部分?

如下图所示,我的MVC站点在我的视图文件夹的根目录中包含_ViewStart.cshtml文件,该文件使用共享文件夹中的_Layout.cshtml来共享页眉和页脚的布局。但是每一页的主要内容是不同的

但现在我的分类文件夹页面有了相同的主内容布局。因此,我的问题是,如何使用另一个更新的_Layout和_ViewStart文件作为类别文件夹页面,这些页面也使用my _Layout.cshtml和_ViewStart.cshtml文件的页眉和页脚,或者我需要为类别文件夹中的每个页面指定相同的部分?我想在Category文件夹的根目录中使用类似于_ViewStart.cshtml的文件,它可以共享Category页面的主要内容布局


也许这看起来有点困惑,但我希望你能理解我想问的问题。

你在category文件夹中创建一个_CategoryLayout.cshtml,并将以下内容放在category页面中:

@{ Layout=“~/Views/Category/_CategoryLayout.cshtml”; }

然后,您可以使用此布局向页面添加页脚和页眉,反过来,此布局页面(_CategoryLayout)可以有自己的布局。因此,您可以在该布局中添加以下代码:

@{ Layout=“~/Views/Shared/_Layout.cshtml”; }

这样它就利用了两种布局。当然,通过应用正确的部分,您可以从中获得更多,不要忘记在页面本身中填充一个部分。您需要在布局的每一层中定义该部分,直到您显示它为止。因此,如果您想在category页面中使用CSS部分,您还需要在categorylayout中定义它


您不能使用另一种仅用于分类页面的布局吗?在此布局中,您可以包含主布局,这样您就可以同时使用这两种布局。@DerDee-您所说的“在此布局中”是什么意思?再次阅读您的问题会让我想知道我是否已经有点太远了,似乎您只需要为类别页面创建一个新布局。这只需通过以下方式完成:@{Layout=“~/Views/Category/_CategoryLayout.cshtml”;}。要跳过主布局,您需要将CategoryLayout中的布局变量设置为Null:@{Layout=Null;}这是否回答了您的问题?如果是的话,你能把它标记为答案吗?你能解释一下你想知道什么吗?谢谢你,你不觉得答案多一些比少一些好吗。这是人类的天性——“为他们的问题找到更准确的答案”,如果不是,我会接受你的答案,很抱歉我太贪婪了不必抱歉,这是科学上的贪婪,如果你问我,这是唯一好的贪婪。我很确定这是关于布局的最佳实践,但我让新的答案让我感到惊讶并教会了我。(别忘了我;))我有一个问题,正如我已经提到的关于_ViewStart.cshtml文件,我不能像你在回答中所说的那样,通过使用两种布局将它与@{Layout=“~/Views/Category/_categorylaylayout.cshtml”}一起使用吗。我不能使用不同的_ViewStart来共享仅用于类别页面的内容布局。