果园动态设置主题

时间:2018-02-16 14:53:20

标签: c# orchardcms

我正在使用ISiteThemeService服务:

在Orchard中动态设置主题
_themeManager.SetSiteTheme("MyTheme");

但由于某种原因,主题(The Theme MAchine)仍在激活,其中没有样式表。

编辑:当我重新启动Orchard时,主题已成功激活。

这是否意味着每次设置主题作为当前主题时我都必须重新启动Orchard?

如果是这样我怎么能动态地做呢? (重申乌节)。

2 个答案:

答案 0 :(得分:0)

您还需要注入IThemeService并致电:

_themeService.EnableThemeFeatures("MyTheme");

顺便说一下,你在SO和GitHub上的问题的一般主题表明你正在做很多自动设置的租户,你可能想看看Recipes

答案 1 :(得分:0)

要实现的正确接口可能是IThemeSelector(请参阅https://github.com/OrchardCMS/Orchard/blob/6720b71cf3474a9a7b8a8cc9a99d58b1e733acfa/src/Orchard/Themes/IThemeSelector.cs)。

ThemeService的作用是管理可用的主题,但IThemeSelector的实现决定了每个请求使用哪个主题。