我有一个服务于网站的 MVC4 Web 应用程序。现在我想使用相同的 web 应用程序作为某种白标引擎来服务其他网站(其他 URL)。本质上,我想使用相同的控制器,但自定义标题、样式和偶尔的内容。
我不想创建同一个 web 应用程序的变体。解决这个问题的最佳方法是什么?我正在考虑从每个控制器检测 URL 并采取行动。但感觉检测 URL 可以在调用堆栈中做得更高。
当然,也欢迎其他解决方案。我基本上是在寻找最实用的方法来实现这一点。
我有一个服务于网站的 MVC4 Web 应用程序。现在我想使用相同的 web 应用程序作为某种白标引擎来服务其他网站(其他 URL)。本质上,我想使用相同的控制器,但自定义标题、样式和偶尔的内容。
我不想创建同一个 web 应用程序的变体。解决这个问题的最佳方法是什么?我正在考虑从每个控制器检测 URL 并采取行动。但感觉检测 URL 可以在调用堆栈中做得更高。
当然,也欢迎其他解决方案。我基本上是在寻找最实用的方法来实现这一点。
如果它们位于不同的域名上,只需检查主机标头。然后在您拥有所有白标签信息的表中(例如,tbl_Site),只需添加一个新列:Host。
然后在您的控制器中,读取主机标头并使用它来查询您的 tb_Site 并确定他们正在访问的站点并对其进行自定义。
您需要让所有域名都指向同一个(静态)IP 地址。
我们有一个类似的解决方案,我们在同一个 iis 站点中使用多个绑定(iismanager -> 右键单击站点 -> 编辑绑定)。
在应用程序内部,我们使用帮助程序类和数据库来根据请求域参数化资源。