【问题标题】:View outside View Folder Does not Use _Layout在视图文件夹之外查看不使用 _Layout
【发布时间】:2017-07-19 20:09:54
【问题描述】:

我试图将每个 ASP.NET 控制器的所有代码保存在它自己的文件夹中,这与开箱即用设置相反。例如,我的 Home 文件夹将包含 HomeController、每个视图的所有 ViewModel,以及与 Home 相关的所有视图。

问题是如果我将我的视图移动到Home 文件夹,然后点击它:

return View("~/Home/Index.cshtml");

它不使用我在Views 文件夹中的_ViewStart_Layout_ViewImports 页面。我希望能够将它们移动到我的应用程序中的任何位置,并且仍然有办法让所有视图都能够引用它们。有没有简单的解决方案?

【问题讨论】:

  • 您可能需要一个自定义视图引擎来告诉它在哪里寻找视图、布局等。
  • 在您的 cshtml 文件中,尝试使用特定布局 Layout = "~/Views/Shared/_HomeLayout.cshtml" 指定要强制使用的布局(注意:您需要指定实际布局文件的位置)
  • 或者我建议查看 K. Scott Allen 的功能文件夹包,它明确用于执行此操作 github.com/OdeToCode/AddFeatureFolders
  • 天哪 @DavidG 这正是我所追求的。我看过很多 K. Scott Allen 的复数视频,但之前没有看过这个包。多么酷的家伙。再次感谢。
  • 拥有一个好主意的问题是其他人可能已经拥有它!我想我在 NDC 视频中看到他在谈论这个。

标签: c# asp.net asp.net-mvc asp.net-core


【解决方案1】:

您想使用我在这篇 MSDN 文章中描述的功能文件夹之类的东西(除了 Scott Allen 的之外,还有一个相关的 Nuget 包): https://msdn.microsoft.com/en-us/magazine/mt763233.aspx

如果您可以等待 ASP.NET Core 2.0 中的 Razor 页面,它们会提供与功能文件夹相同的许多好处。我有一篇关于该主题的即将发布的 MSDN 文章,但您可以在此 GitHub 分支中看到基于上述文章示例的示例(一旦文章发布,该示例很可能会合并到 master 中): https://github.com/ardalis/organizingaspnetcore/tree/ardalis/razorpages

【讨论】:

    猜你喜欢
    • 2010-11-18
    • 1970-01-01
    • 2013-06-09
    • 1970-01-01
    • 2021-04-05
    • 1970-01-01
    • 2022-08-03
    • 1970-01-01
    相关资源
    最近更新 更多