因为你打算删除网址的{控制器}元素,你可能需要获得更具体一点与其他的网址,如:
routes.MapRoute("MyOtherControllerRoute", "Account/{action}", new { controller = "Account", action = "Index" });
routes.MapRoute("MyDefaultRoute", "{action}", new { controller = "Home", action = "Index" });
当路由表进行询问,如果使用的网址如www.mysite.com/Account
,它会匹配第一条路由,因为我们已经详细说明了用于匹配url的模式。如果我们然后执行类似www.mysite.com/DoSomething
的操作,它将使用我们上次选择的默认路由,尝试调用HomeController类型的DoSomething操作。
我注意到的一点是,很多MVC开发者似乎认为url是严格的{something}/{something}/{something}
,而它基本上可以是任何你喜欢的东西,例如,我可以有一条路线:www.mysite.com/my-weird-and-wonderful-url
我可以专门映射:
routes.MapRoute("Somewhere", "my-weird-and-wonderful-url", new { controller = "Whatever", action = "Whenever" });
希望有所帮助。
感谢马修 - 工作得很好。提供了他们的见解 - 我很高兴迅速提供了一个解决方案。 – Neurothustra 2010-07-28 15:44:04