Поскольку вы планируете удалить элемент {controller} URL-адреса, вам может потребоваться немного конкретнее указать другие URL-адреса, например ::10000
routes.MapRoute("MyOtherControllerRoute", "Account/{action}", new { controller = "Account", action = "Index" });
routes.MapRoute("MyDefaultRoute", "{action}", new { controller = "Home", action = "Index" });
При запросе таблицы маршрутов, если используется URL-адрес, такой как www.mysite.com/Account
, он будет соответствовать первому маршруту, потому что мы были конкретны в отношении шаблона, используемого для соответствия URL-адресу. Если мы затем сделаем что-то вроде www.mysite.com/DoSomething
, он будет использовать маршрут по умолчанию, который мы выбрали последним, пытаясь вызвать действие DoSomething для типа HomeController.
Что я заметил, так это то, что многие разработчики 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" });
Надеюсь, это поможет.