Я устанавливаю новый сервер с MVC 5.2.4.0 в ASP.NET. Моя проблема с настройкой маршрута.
В файле конфигурации App_Start / RouteConfig.cs Я поставил следующий код:
routes.MapRoute(
name: "DefaultEvent",
url: "{idseries}/{controller}/{action}/{id}",
defaults: new { idseries= "startgate", idsequel = "SG1", controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "DefaultEdition",
url: "{idseries}/{idsequel}/{controller}/{action}/{id}",
defaults: new { idseries= "stargate", idsequel = "SG1", controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Я хочу использовать эти URL в следующем формате:
url:port
url:port/stargate
url:port/stargate/episode/actors
url:port/stargate/episode/actors/ONeill
url:port/stargate/SG1
url:port/stargate/SG1/episode/actors
url:port/stargate/SG1/episode/actors/ONeill
Я понял, что ASP.NET пытался найти первый MapRoute , который не выходит из строя, но это не так.
Я использовал отладчик Visual Studio, но он входит только в файл RouteConfig.cs при первом выполнении.
Кроме того, я создал MapRoutes, чтобы покрыть все комбинации, но он входит только в первую запись. И если он не вводится, он терпит неудачу, показывая страницу ошибки 404.
Примеры:
routes.MapRoute(
name: "DefaultEvent",
url: "{idseries}/{controller}",
defaults: new { idseries= "startgate", idsequel = "SG1", controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "DefaultEdition",
url: "{idseries}/{idsequel}",
defaults: new { idseries= "stargate", idsequel = "SG1", controller = "Home", action = "Index", id = UrlParameter.Optional }
);
При такой конфигурации произойдет сбой, если я не поставлю действительный драйвер.
routes.MapRoute(
name: "DefaultEdition",
url: "{idseries}/{idsequel}",
defaults: new { idseries= "stargate", idsequel = "SG1", controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "DefaultEvent",
url: "{idseries}/{controller}",
defaults: new { idseries= "startgate", idsequel = "SG1", controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Но если я поставлю его с ног на голову, он будет считаться идентификатором сиквела (что я вижу в логике).