MVC中如何使用多个路由
How to use multible routes in MVC
我有一个网站需要所有站点的 departmentID,所以我将默认路由重写为以下内容:
routes.MapRoute(
name: "Main",
url: "{deptID}/{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", deptID = "", id = UrlParameter.Optional }
);
当您使用以下 URL 时它工作正常:
或者简单地说:
我的问题是,当我转到“http://domain/”时出现错误,因为我没有指定 departmentID。
我如何添加第二条路由,它会在您进入域时触发。
我尝试添加以下内容:
routes.MapRoute(
name: "Start",
url: "/",
defaults: new { controller = "Department", action = "Select"}
);
这是行不通的,因为您不能将“/”作为 URL。
我也试过添加默认路由,然后只更改默认对象:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Department", action = "Select", id = UrlParameter.Optional }
);
这也不行。
你必须修改你的代码如下
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Department",
url: "{deptID}/{controller}/{action}",
defaults: new { controller = "Department", action = "Index"}
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
输出
如果以上代码仍然不适合您,请告诉我。
我有一个网站需要所有站点的 departmentID,所以我将默认路由重写为以下内容:
routes.MapRoute(
name: "Main",
url: "{deptID}/{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", deptID = "", id = UrlParameter.Optional }
);
当您使用以下 URL 时它工作正常:
或者简单地说:
我的问题是,当我转到“http://domain/”时出现错误,因为我没有指定 departmentID。 我如何添加第二条路由,它会在您进入域时触发。
我尝试添加以下内容:
routes.MapRoute(
name: "Start",
url: "/",
defaults: new { controller = "Department", action = "Select"}
);
这是行不通的,因为您不能将“/”作为 URL。
我也试过添加默认路由,然后只更改默认对象:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Department", action = "Select", id = UrlParameter.Optional }
);
这也不行。
你必须修改你的代码如下
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Department",
url: "{deptID}/{controller}/{action}",
defaults: new { controller = "Department", action = "Index"}
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
输出
如果以上代码仍然不适合您,请告诉我。