Asp.net mvc 2 是否可以将参数作为路由的第一个节点?

Asp.net mvc 2 是否可以将参数作为路由的第一个节点?,asp.net-mvc-2,asp.net-mvc-routing,Asp.net Mvc 2,Asp.net Mvc Routing,我希望在ASP.NET MVC中有以下类型的路由 {a}/{b}->->SiteController.Search(a,b)(其中a和b是任意字符串) 而仍然有一个家庭控制器 home/index->HomeController.index() 这可能吗?如果家庭控制器路线是硬编码的,是否可能? 即: 否如果不删除默认路由,这是不可能的,因为路由引擎无法消除这两个URL之间的歧义: foo/bar home/index 假设您希望第一个匹配{a}/{b},第二个匹配{controlle

我希望在ASP.NET MVC中有以下类型的路由

  • {a}/{b}
    ->->SiteController.Search(a,b)(其中a和b是任意字符串)
而仍然有一个家庭控制器

  • home/index
    ->HomeController.index()
这可能吗?如果家庭控制器路线是硬编码的,是否可能? 即:


否如果不删除默认路由,这是不可能的,因为路由引擎无法消除这两个URL之间的歧义:

foo/bar
home/index
假设您希望第一个匹配
{a}/{b}
,第二个匹配
{controller}/{action}
。即使您像示例中那样硬编码路由,
home/index
将始终匹配第一条路由,即
{a}/{b}

另外,如果
a
b
可以是任意字符串,那么最好将它们作为查询字符串参数传递

foo/bar
home/index