插件 UI 是在一个单独的 MVC 项目中开发的,而 CMS 12 在另一个项目中。以下是一个测试解决方案,只是为了解释我们遇到的问题。 解决方案结构
请考虑以下
- TestAddon 项目是一个具有基本 UI 的简单 MVC 项目。我们需要在 CMS 12 管理菜单中呈现此 UI。我们还创建了一个菜单提供程序。
- 然后构建 TestAddon 项目并将 DLL 复制到 CMS-> bin 文件夹。
- 创建 module/_protected 文件夹并添加 TestAddon/TestAddon.zip
- module.config 是按照文档中的描述创建的(https://world.optimizely.com/documentation/developer-guides/CMS/configuration/Configuring-moduleconfig/)
<module productName="TestAddon" loadFromBin="false" tags="EPiServerModulePackage" clientResourceRelativePath="1.0.0">
<assemblies>
<add assembly="TestAddon" />
<add assembly="TestAddon.Views" />
</assemblies>
<route url="{controller}/{action}" >
<defaults>
<!--<add key="moduleArea" value="TestAddon" />-->
<add key="controller" value="CustomAdminPage" />
<add key="action" value="Index" />
</defaults>
</route>
<clientResources>
<!-- <add name="myscript" path="ClientResources/index.js" resourceType="Script" ></add> -->
</clientResources>
<clientModule>
<moduleDependencies>
<add dependency="CMS" />
<add dependency="Shell"/>
<add dependency="EPiServer.Cms.UI.Admin" type="RunAfter"/>
<add dependency="EPiServer.Cms.UI.Settings" type="RunAfter"/>
</moduleDependencies>
<requiredResources>
</requiredResources>
</clientModule>
</module>
- 在启动文件中设置自动发现
services.Configure<ProtectedModuleOptions>(x => x.AutoDiscovery = EPiServer.Shell.Configuration.AutoDiscoveryLevel.Modules);
有没有人经历过这个?请指出我正确的方向