Asp.net 这将转到哪个控制器/操作?

Asp.net 这将转到哪个控制器/操作?,asp.net,asp.net-mvc,asp.net-mvc-2,Asp.net,Asp.net Mvc,Asp.net Mvc 2,假设这是第一条路线入口: routes.MapRoute( "myRoute", "employees/{city}/{pageNumber}", new { controller="Employees", action = "List", pageNumber = 1 } ); 如果我提出以下要求 employees/london/2 它与以下操作方法匹配: public ActionResult List(string city) {} 那是怎么发生的?我没有在对象默认值中

假设这是第一条路线入口:

routes.MapRoute(
  "myRoute",
  "employees/{city}/{pageNumber}",
  new { controller="Employees", action = "List", pageNumber = 1 }
);
如果我提出以下要求

employees/london/2
它与以下操作方法匹配:

public ActionResult List(string city) {}
那是怎么发生的?我没有在对象默认值中指定“城市”:

new { controller="Employees", action = "List", pageNumber = 1 } 

请解释一下。谢谢

RoutedData的唯一限制是它应该包含控制器和操作。其他值可以在没有默认值的情况下正常工作。 比如说

new { controller="Employees", action = "List", pageNumber = 1 } 

employees/london/2 -> Employees.List  city=london pageNumber=2 
employees/london/ -> Employees.List  city=london pageNumber=1 (becouse of defauld)
employees ->this route will not be used, MVC will go find other routs
但是如果你愿意

new { controller="Employees", action = "List", city="london" pageNumber = 1 } 

employees/london/2 -> same
employees/london/ -> same
employees ->Employees.List  city=london(becouse of defauld) pageNumber=1 (becouse of defauld)

正如您在案例中所看到的,路由工作与预期一样。

此操作还有哪些其他重载?列表没有重载。