我正在开始一个新项目,其中的想法是将项目文件/文件夹结构组织到不同的模块(.csproj),最后一旦部署,这些模块将加载到一个AppMost的MainModule(这些子模块将采取行动作为插件)。
但是,为了更好的物理文件管理(SVN / VCS)和有效组织我的项目文件,这些模块也将作为SVN中的单独项目进行维护。 想的是在每个模块的目录范围内拥有特定于每个模块的视图,资产等。 (Refer screenshot)。
模块特定文件将作为后期构建操作复制到根项目路径而不是/ Views直接复制(如果复制则将其与主模块的Views文件夹混淆)。
问题在于ServiceStack如何从/ Views文件夹加载和处理Razor视图,而外部的任何内容都被视为内容页面。 More about this, explained here...!
在VirtualFileSystem到位的情况下,我正在大声思考将模块特定视图保存在相应的“/ ModuleOne / Views /”文件夹中,但在根“/ Views”之外。不知何故,这似乎不起作用,试图寻求帮助,以便如何实现或妥善处理。
PS:我知道Views文件夹之外的任何东西都是内容页面,但是这个想法仍然是作为Views文件夹维护但是在不同的层次结构中 - 希望ServiceStack Razor功能无论如何都能很好地处理嵌套(DEEP)结构但在root / Views文件夹中而不是从整个Project Root文件夹,即“/".问题是,这可以在没有任何繁重工作的情况下实现吗?或者我应该有自定义的VirtualPathProvider实现等吗?
非常感谢意见和想法!
谢谢!
答案 0 :(得分:2)
所有Razor视图必须位于/Views
文件夹中,否则它们可以是任何层次结构,因为任何级别的嵌套都不会影响它们的解析方式,它们只需要具有唯一名称,例如:
/Views
/SubModuleOne
ModuleOneDefault.cshtml
/SubModuleTwo
ModuleTwoDefault.cshtml
/Shared
_Layout.cshtml