0

我正在设计一个企业 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”类(如文章中所建议的那样),是否建议将其设为静态以使其可以在不同的层中访问?否则推荐的方法是什么?

您的建议将不胜感激。

4

2 回答 2

0

这可能有助于您从传入请求中检测“租户”。

我不会动态选择不同的 MasterPage 文件,而是通过 Html Helpers / Patrial Views(或两者)将不同的内容呈现给 MasterPage。

于 2010-10-07T03:18:32.847 回答
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。

祝你好运

于 2010-10-07T02:56:15.917 回答