代码之家  ›  专栏  ›  技术社区  ›  Portman

使用_viewstart.cshtml和部分Razor视图的正确方法?

  •  154
  • Portman  · 技术社区  · 14 年前

    我在用 _viewstart.cshtml to automagically assign the same Razor Layout 依我看。

    它是“我的视图”文件夹根目录下的一个非常简单的文件,如下所示:

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

    这比将@Layout指令添加到每个视图都要简单。

    然而,这给剃须刀带来了问题 部分

    这是一个假设的项目,显示了viewstart.cshtml文件、shared layout.shtml文件和一个部分视图(“AnonBar.cshtml”)。

    Example project structure

    @{
        Layout = "";
    }
    

    这似乎是用错误的方式来表示剃须刀中的部分视图。(请注意,与web窗体视图引擎不同,部分视图的文件扩展名相同。)

    我考虑过的其他选择,但更糟糕的是:

    • 将所有部分视图放入一个公用文件夹,以便它们可以共享一个公用的viewstart.cshtml。这打破了视图与其控制器位于同一文件夹中的惯例。
    • 不使用部分视图。

    这是Razor view引擎团队仍在充实的东西,还是我遗漏了一个基本概念?

    1 回复  |  直到 7 年前
        1
  •  234
  •   marcind    14 年前

    如果你 return PartialView() 从控制器(而不是 return View() _viewstart.cshtml 不会被执行。