Я вижу много проблем с маршрутами MVC, и у меня аналогичная проблема с получением маршрута, соответствующего URL-адресу.
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
//default route
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute("Beer", "Beer/{beerid}", new { controller = "Beer", action = "Id", beerid = 0});
routes.MapRoute("Beer", "Beer/{beername}", new { controller = "Beer", action = "Name" });
Методы контроллера пива
public ActionResult Id(int beerid)
public ActionResult Name(string beername)
Если я изменю методы на следующие,
public ActionResult Id(int? id)
public ActionResult Name(string id)
маршрутизация по умолчанию работает со следующими URL-адресами:
http://localhost/Beer/Id/100
http://localhost/Beer/Name/Coors
Но то, что я собираюсь сделать, это просто
http://localhost/Beer/100
http://localhost/Beer/Coors
Любые идеи?