最佳答案
我使用 < strong > _ viewstart.cshtml 自动分配相同的 Razor 布局来表达我的观点。
这是一个非常简单的文件,位于我的视图文件夹的根目录中,如下所示:
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
这比将@Layout 指令添加到每个视图更加 DRY。
然而,这给 Razor 不完整视图带来了一个问题,因为它们运行 _ viewstart.cshtml 的内容,因此错误地为自己分配了一个布局,这使得它们不再是局部的。
下面是一个假设的项目,显示了 _ viewstart.cshtml 文件、 share _ layout.shtml 文件和一个部分视图(“ AnonBar.cshtml”)。
目前,我解决这个问题的方法是在每个部分视图中添加以下代码行:
@{
Layout = "";
}
这似乎是在 Razor 中将视图表示为局部视图的错误方式。(注意,与 web 表单视图引擎不同,部分视图的文件扩展名是相同的。)
我考虑过其他更糟糕的选择:
这是 Razor 视图引擎团队仍在充实的东西,还是我遗漏了一个基本概念?