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

How to serve multiple URL's from the same MVC C# code

我有一个为网站提供服务的 MVC4 网络应用程序。现在我想使用相同的网络应用程序为其他网站(其他 URL's)提供某种白标签引擎。本质上,我想使用相同的控制器,但在 header、样式和偶尔的内容上进行自定义。

我不想创建同一个网络应用程序的变体。最好的方法是什么?我正在考虑从每个控制器检测 URL 并据此采取行动。但感觉检测 URL 可以在调用堆栈的更高层完成。

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

如果它们在不同的域名上,只需检查主机 header。然后在您的 table 中,您拥有所有白标签信息(例如,tbl_Site),只需添加一个新列:Host.

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

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

我们有一个类似的解决方案,我们在同一个 iis 站点中使用多个绑定(iismanager -> 右键单击​​一个站点 -> 编辑绑定)。

在应用程序内部,我们使用助手 class 和数据库根据请求域对资源进行参数化。