C# .NETMVC自定义路由

C# .NETMVC自定义路由,c#,asp.net-mvc,asp.net-mvc-routing,C#,Asp.net Mvc,Asp.net Mvc Routing,我想知道我是否可以创建一个比控制器更高级别的路由映射。典型的路由包括“/controller/action/id”。我要找的是类似“节/控制器/操作/id”或“控制器/节/操作/id”的东西。我该怎么做?没问题。例如,只需创建一个URL为的路由 path/to/my/application/{controller}/{action}/{id} …并像往常一样提供默认控制器和操作 这方面的一个具体例子是 context.MapRoute( "Admin_default", "adm

我想知道我是否可以创建一个比控制器更高级别的路由映射。典型的路由包括“/controller/action/id”。我要找的是类似“节/控制器/操作/id”或“控制器/节/操作/id”的东西。我该怎么做?

没问题。例如,只需创建一个URL为的路由

path/to/my/application/{controller}/{action}/{id}

…并像往常一样提供默认控制器和操作

这方面的一个具体例子是

context.MapRoute(
    "Admin_default",
    "admin/{controller}/{action}/{id}",
    new { controller = "AdminHome", action = "Index", id = "" }
);
例如,这将映射以下URL:

/admin/                   => AdminHomeController.Index
/admin/adminhome/         => AdminHomeController.Index
/admin/other/             => OtherController.Index
/admin/statistics/view/50 => StatisticsController.View(50)
但是请注意,如果您也有默认路由,例如:

context.MapRoute(
    "Default",
    "{controller}/{action}/{id}",
    new { controller = "Home", action = "Index", id = "" }
);

…那么管理路由中的控制器操作方法也可以通过此路由访问。请使用以确定答案。

需要更多说明:您所在的部分是什么样子的?它是路径还是令牌?你知道你的所有部分吗?或者你想要一个可以处理任何部分的路由吗?为了避免任何混淆,这是不是应该是
“pathToApplication/ExtraBits/{controller}/…”
,其中
pathToApplication
是IIS应用程序的根(即“
~
”)。