如何从相同的MVC C#代码提供多个URL

时间:2015-03-23 20:32:56

标签: c# asp.net-mvc asp.net-mvc-4 white-labelling

我有一个服务于网站的MVC4网络应用程序。现在我想使用相同的webapplication来提供其他网站(其他网址)作为某种白标签引擎。基本上我想使用相同的控制器,但在标题,样式和偶尔内容上自定义。

我不想创建相同Web应用程序的变体。最好的方法是什么?我正在考虑检测每个控制器的URL并对其进行操作。但感觉就像检测URL可以在调用堆栈中更高。

当然,也欢迎其他解决方案。我基本上都在寻找最实用的方法来实现这一点。

2 个答案:

答案 0 :(得分:2)

如果它们位于不同的域名,请检查主机标头。然后在你的表中你有所有whitelabel信息(例如,tbl_Site),只需添加一个新列:Host。

然后在您的控制器中,阅读主机标头并使用它来查询您的tb_Site并确定他们正在访问哪个网站并对其进行自定义。

您需要让所有域名指向相同的(静态)IP地址。

答案 1 :(得分:1)

我们在同一个iis网站上使用多个绑定实现了类似的解决方案(iismanager - >右击网站 - >编辑绑定)。

在应用程序内部,我们使用辅助类和数据库来根据请求域参数化资源。