正确的方式来使用_viewstart.cshtml和部分剃刀视图?
我正在使用_viewstart.cshtml自动将相同的剃刀布局分配给我的意见。
这是我的视图文件夹的根目录中的一个死的简单的文件,看起来像这样:
@{ Layout = "~/Views/Shared/_Layout.cshtml"; }
这比在每个视图中添加@Layout指令更干。
然而,这对Razor 部分视图提出了一个问题,因为它们运行_viewstart.cshtml的内容,因此错误地为它们分配了一个布局,这使得它们不再局部。
这是一个假设的项目,显示_viewstart.cshtml文件,共享_layout.shtml文件和部分视图(“AnonBar.cshtml”)。
目前,我正在解决这个问题的方法是在每个局部视图中添加以下行:
@{ Layout = ""; }
这在Razor中似乎是错误的expression方式。 (请注意,与Web表单视图引擎不同,文件扩展名与部分视图相同。)
我考虑的其他选项,但更糟糕的是:
- 把所有的部分视图放到一个公共文件夹中,这样他们就可以共享一个共同的_viewstart.cshtml。 这打破了与他们的控制器在同一个文件夹中的惯例。
- 不使用部分视图。
这个东西是否仍然由剃刀视图引擎团队充实,还是我错过了一个基本概念?
如果从控制器return PartialView()
(而不是return View()
),则不会执行_viewstart.cshtml
。