我想在ASP.NET MVC中使用以下类型的路由。
{a}/{b}
- > SiteController.Search(a,b)(其中a和b是任意字符串)虽然还有HomeController
home/index
- > HomeController.Index()这可能吗?家庭控制器路由是否可以硬编码? 即:
routes.MapRoute(
"Home", // Route name
"Home/{action}", // URL with parameters
new { action = "Index" } // Parameter defaults
);
答案 0 :(得分:1)
如果不删除默认路由,这是不可能的,因为路由引擎无法消除这两个网址之间的歧义:
foo/bar
home/index
假设您希望第一个匹配{a}/{b}
和第二个{controller}/{action}
。即使您按照示例home/index
对路线进行硬编码也始终与{a}/{b}
的第一条路线匹配。
此外,如果a
和b
可以是任意字符串,那么将它们作为查询字符串参数传递会更好。