我有一个网站,所有网站都需要一个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 }
);
这也不起作用。
答案 0 :(得分:1)
您必须按如下所示修改代码
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 }
);
}
输出
让我知道上面的代码是否仍然对您不起作用。