【发布时间】:2017-12-27 17:39:14
【问题描述】:
这听起来可能很奇怪。我希望有两个相同的应用程序实例根据用于访问它们的 URL 有不同的行为。
我在 IIS 上部署了两个应用程序实例,我们将它们的路径命名为 dev.routeone 和 dev.routetwo。两个实例都指向同一个源。现在,假设我在这个项目中的MainController 中有两个操作ActionOne 和ActionTwo,分别链接到HTML 视图viewone.cshtml 和viewtwo.cshtml。
路由配置会这样设置(RegisterRoutes):
routes.MapRoute(
name: "ActionOne",
url: "one",
defaults: new { controller = "MainController", action = "ActionOne" }
);
routes.MapRoute(
name: "ActionTwo",
url: "two",
defaults: new { controller = "MainController", action = "ActionTwo" }
);
使用此设置,两个 IIS 实例的行为相同:
http://dev.routeone/one -> ActionOne
http://dev.routeone/two -> ActionTwo
http://dev.routetwo/one -> ActionOne
http://dev.routetwo/two -> ActionTwo
我希望有一种情况,使用相同的源代码,URL 将指示输入路由时运行的操作。特别是在这种情况下,dev.routeone 将两条路由都指向ActionOne,而dev.routetwo 则相反:
http://dev.routeone/one -> ActionOne
http://dev.routeone/two -> ActionOne
http://dev.routetwo/one -> ActionTwo
http://dev.routetwo/two -> ActionTwo
或者更好的是,在没有配置的路线的情况下适当地直接:
http://dev.routeone/ -> ActionOne
http://dev.routetwo/ -> ActionTwo
我不确定这是否可行或可取,但我愿意接受任何解决方案。有没有办法“回顾”不受应用程序控制的 URL 并使用它来确定行为?
【问题讨论】:
-
您想要多个具有不同基本路径但相对路径相同的应用程序?
-
基本上,是的。尽管多个应用程序具有相同的源代码
标签: .net asp.net-mvc asp.net-mvc-4 asp.net-mvc-routing