来自多个模块目录的 ServiceStack Razor 视图

ServiceStack Razor Views from Multiple Module Directories

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

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

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

问题在于 ServiceStack 如何从 /Views 文件夹加载和处理 Razor 视图,而外部的任何内容都被视为内容页面。 More about this, explained here...!

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

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

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

非常感谢您的意见和想法!

谢谢!

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

/Views
   /SubModuleOne
        ModuleOneDefault.cshtml
   /SubModuleTwo
        ModuleTwoDefault.cshtml
   /Shared
       _Layout.cshtml