RouteConfig в ASP.NET MVC C # отправлен на страницу ошибки - PullRequest
0 голосов
/ 27 апреля 2019

Я устанавливаю новый сервер с 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 }
);

Но если я поставлю его с ног на голову, он будет считаться идентификатором сиквела (что я вижу в логике).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...