多演示企业解决方案

时间:2010-10-06 13:49:45

标签: c# asp.net-mvc-2 multi-tenant

我正在设计一个企业Web应用程序,该应用程序将具有单个代码库和单个数据库(基于租户的数据库不需要任何灵活性),但基于客户端的不同演示文稿。我们可能有3到4个不同的客户端(网站)使用相同的核心逻辑和骨架,但客户端特定的页眉,页脚,图像,CSS等。我需要一个多表示解决方案,然后一个完整的承诺多租户。我在网上看到的大部分样本都面向完全成熟的多租户,我认为我不需要那些复杂的东西。我在这里找到了一些非常有用的信息:

http://jasonjano.wordpress.com/2010/02/22/multi-presentation-websites-for-c/

正如上面的链接所示,我能够根据我的web.config文件中的以下配置,根据请求的域识别并获取唯一ID:

<configuration>
    <appSettings>
        <add key="MySite1.MyDomain.com" value="1"/>
        <add key="www.MySite1.MyDomain.com" value="1"/>
        <add key="MySite2.MyDomain.com" value="2"/>
        <add key="localhost" value="1"/>
    </appSettings>
</configuration>

在此之后,如何根据ID动态选择我的母版页,图像和CSS文件?此外,我将从数据库填充“CustomAppSettings”类(如文章中所示),是否可以将其设置为静态,以便可以在不同的层中访问它?否则推荐的方式是什么?

非常感谢您的建议。

2 个答案:

答案 0 :(得分:0)

很高兴看到你正在使用那篇文章。关于答案,我通常使用继承自system.web.ui.page的自定义页面类。在自定义页面类的page_init中,您可以设置母版页等。

像(伪代码)

之类的东西
class MyCustomPage : System.Web.UI.Page
{
public void Page_Init(object sender, eventargs e) {
this.MasterPageFile = CurrentSettings.MasterPageFile <Or however you are getting your masterpage file>
}

然后,在您的页面中,继承MyCustomPage类而不是System.Web.UI.Page。

祝你好运

答案 1 :(得分:0)

This might help you with detecting the 'tenant' from the incoming request.

我不会通过Html Helpers / Patrial Views(或两者)动态地选择不同的MasterPage文件,而是rather render different content out到MasterPage。

相关问题