我已经开发了2年的产品,由我们自己和合作伙伴销售。 现在,经理希望将源代码提供给我们的合作伙伴,这些合作伙伴将仅用作具有演示许可证的演示应用程序。
所有的演示模块都已经开发出来但我需要展示" Demo"许可证说明的路线(网址)。
示例:
每次致电
/控制器1 /措施1
必须将网址转换为
/演示/控制器1 /措施1
首先尝试:
routes.MapRoute(
name: "DefaultDemo",
url: "Demo/{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
但是,这部分会有效,因为我需要设置" Demo"在我的应用程序中每次调用Controller / Action I时都会打开。
第二次尝试:
routes.MapRoute(
name: "DefaultDemo",
url: "{demo}/{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
constraints: new { demo = "Demo" }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional, demo = "Demo" }
);
在这一个中,我尝试将其设置为变量" Demo"作为该变量的约束,以防止某人将其更改为其他文本。
然后我尝试使用"默认"路由作为重定向到另一个,通过设置参数" demo",但是这显然失败了,因为它没有这样工作。
第三次尝试:
var demoRoute = routes.MapRoute(
name: "DefaultDemo",
url: "{demo}/{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
constraints: new { demo = "Demo" }
);
routes.Redirect(x =>
x.MapRoute("Default", "{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = UrlParameter.Optional, demo = "Demo" })
)
.To(demoRoute);
在最后一个例子中,我尝试使用RouteMagic nugget重定向旧的"默认"前往Demo的路线,但它没有用。
任何做类似事情的人?