ASP.NET MVC C#中的RouteConfig已发送到错误页面

时间:2019-04-27 18:04:19

标签: c# asp.net asp.net-mvc

我正在ASP.NET中使用MVC 5.2.4.0 设置新服务器。我的问题是路由配置。

在配置文件 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: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 }
);

但是如果我把它倒过来,它就算是续集的ID(我认为是逻辑的)。

0 个答案:

没有答案