Asp.net mvc 3 如何在Orchard CMS中基于URL选择主题

Asp.net mvc 3 如何在Orchard CMS中基于URL选择主题,asp.net-mvc-3,orchardcms,Asp.net Mvc 3,Orchardcms,假设我有一个名为test.com的网站,当然它有一个选定的主题。现在我有了另一个名为alpha.test.com的租户站点,其中还使用了一个主题 但是我想从orchard用来选择主题的代码中为alpha.test.com选择主题。怎么样?请帮忙 我的另一个问题是如何为Orchard CMS中的不同控制器或操作选择不同的主题 Orchard中没有包含已安装主题的表,但themes\u ThemeSiteSettingsPartRecord表仅用于存储当前主题的记录。如果我们想根据URL选择多个/另

假设我有一个名为test.com的网站,当然它有一个选定的主题。现在我有了另一个名为alpha.test.com的租户站点,其中还使用了一个主题

  • 但是我想从orchard用来选择主题的代码中为alpha.test.com选择主题。怎么样?请帮忙

  • 我的另一个问题是如何为Orchard CMS中的不同控制器或操作选择不同的主题


  • Orchard中没有包含已安装主题的表,但themes\u ThemeSiteSettingsPartRecord表仅用于存储当前主题的记录。如果我们想根据URL选择多个/另一个主题,那么


    Ans1和Ans2:在位于Orchard.Themes/Services中的SiteThemeSelector类的GetTheme方法中,使用所需安装的主题名指定currentThemeName变量。如果要基于URL应用不同的主题,请在逻辑中设置currentThemeName,URL可以从context.HttpContext.Request检索。

    只需实现自己的IThemeSelector,并使用比默认优先级更高的优先级。不要更改现有的链接,就像建议的那样。

    我认为这些链接可能会帮助您:


    如果我们想根据URL选择多个/另一个主题,那么Q1:在Orchard.Themes/Services中SiteThemeSelector类的GetTheme方法中指定currentThemeName变量和所需的已安装主题名称。如果您想基于URL应用不同的主题,请在逻辑内部设置currentThemeName,URL可以从context.HttpContext.Request检索。问题2:在位于Orchard.Themes/Services中的SiteThemeSelector类的GetTheme方法中,使用所需安装的主题名称指定currentThemeName变量。不需要更改现有的主题选择器,这实际上是一种不好的做法。正确的方法是创建IThemeSelector的另一个实现。