我有一个MVC应用程序,无法让我的多租户应用程序的路由工作正常。这是问题所在:
我的应用程序中有两种类型的页面,大多数要求租户名称在URL中,但有些则不需要。 e.g。
这些Do(租户名称是这些例子是三星和苹果):
http://www.mytestapp.com/samsung/customers/add
http://www.mytestapp.com/apple/customers/add
这些不要:
http://www.mytestapp.com/home/register/
http://www.mytestapp.com/home/aboutus/
我需要哪些路线才能使其正常工作?我已经尝试了这个,但它不适用于寄存器和关于我们的页面。
routes.MapRoute(
name: "TenantRoute",
url: "{tenantid}/{controller}/{action}/{id}",
defaults: new { tenantid = "tenantname", controller = "Home", action = "Index", id = UrlParameter.Optional }
);
答案 0 :(得分:0)
那么,您需要第二条路线来匹配非租户路线。如果register
和aboutus
是具有Index
操作的控制器,则默认值应匹配:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Register", action = "Index", id = UrlParameter.Optional }
);
答案 1 :(得分:0)
试试这个
routes.MapRoute(
"samsung",
"samsung/{controller}/{action}/{id}",
new { controller = "YourController", action = "YourAction", id = UrlParameter.Optional}
);
routes.MapRoute(
"apple",
"apple/{controller}/{action}/{id}",
new { controller = "YourController", action = "YourAction", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Register", action = "Index", id = UrlParameter.Optional }
);