mvc将同一站点的路由倍增

时间:2016-10-10 16:38:35

标签: c# asp.net asp.net-mvc asp.net-mvc-routing

这是我的问题我有一个现有的网站

wwww.mysite.com

要求让我允许用户使用相同的网站

www.mysite.com
www.mysite.com/Home/Index
www.mysite.com/defaultsuborganisation/Home/Index
www.mysite.com/suborganisation1/Home/Index
www.mysite.com/suborganisation2/Home/Index

所以我修改了路由配置(RouteConfig.cs)

routes.MapRoute(
  name: "OrganisationRoute",
  url: "{org}/{controller}/{action}/{data}",
  defaults:
  new
    {
    org= "defaultsuborganisation",
    controller = "Home",
    action = "Index",
    data = UrlParameter.Optional
  });

我为除www.mysite.com/Home/Index

以外的所有预期路线工作

2 个答案:

答案 0 :(得分:2)

Div之类的属性路由可能是更好的方法,但您可以在 RegisterRoutes()中的 OrganisationRoute 之前添加固定路线像这样的方法:

routes.MapRoute(
 "DefaultHomeRoute",
 "Home/Index/{id}", 
 new { controller = "Home", action = "Index", id = UrlParameter.Optional}
 );

答案 1 :(得分:0)

您可以使用属性路由:

启用属性路由:
要启用属性路由,我们需要在RouteConfig中的配置期间调用路由集合类的MapMvcAttributeRoutes方法。

routes.MapMvcAttributeRoutes(); 

关于你的行动:

[Route("Home/Index")]
public ActionResult Index()
{
  return view();
}