2

我正在开始一个新项目,其想法是将项目文件/文件夹结构组织到不同的模块(.csproj)中,最后一旦部署,这些模块将被加载到 MainModule 的一个 AppHost(这些子模块将充当插件) .

然而,为了更好的物理文件管理 (SVN/VCS) 和我的项目文件的有效组织,这些模块也将在 SVN 中作为单独的项目进行维护。想法是在其自己的模块目录范围内拥有特定于每个模块的视图、资产等。 (参考截图)

  • 主模块
    • 子模块一
      • 意见
        • ModuleOneDefault.cshtml
    • 子模块二
      • 意见
        • ModuleTwoDefault.cshtml
    • 意见
      • 共享
        • _Layout.cshtml
      • 你好.cshtml

特定于模块的文件将作为构建后操作复制到根项目路径中,而不是直接复制到 /Views 中(如果复制,则它会与主模块的 Views 文件夹混淆)。

问题在于 ServiceStack 如何从 /Views 文件夹加载和处理 Razor 视图,而外部的任何内容都被视为内容页面。有关此的更多信息,请在此处解释...!

使用VirtualFileSystem后,我正在大声思考在各自的“/ModuleOne/Views/”文件夹中但在根“/Views”之外维护模块特定视图。不知何故,这似乎不起作用,试图寻求有关如何实现或适当​​处理的帮助。

PS:我知道 Views 文件夹之外的任何内容都是内容页面,但是这个想法仍然是作为 Views 文件夹维护,但在不同的层次结构中 - 希望 ServiceStack Razor 功能无论如何都能很好地处理嵌套(DEEP)结构,但在根 /Views 文件夹中而不是来自整个项目根文件夹,即“/”。

问题是,这可以在默认情况下实现而不需要任何繁重的工作吗?或者我应该有自定义的 VirtualPathProvider 实现等吗?

非常感谢意见和想法!

谢谢!

4

1 回答 1

2

所有 Razor 视图都必须在/Views文件夹中,否则它们可以是任何层次结构,因为任何级别的嵌套都不会影响它们的解析方式,它们只需要唯一命名,例如:

/Views
   /SubModuleOne
        ModuleOneDefault.cshtml
   /SubModuleTwo
        ModuleTwoDefault.cshtml
   /Shared
       _Layout.cshtml
于 2015-08-26T16:40:05.763 回答