C# MVC中与路由相关的问题
我有MVC网络应用程序。我在Route.config文件中编写了以下规则C# MVC中与路由相关的问题,c#,asp.net-mvc,routing,C#,Asp.net Mvc,Routing,我有MVC网络应用程序。我在Route.config文件中编写了以下规则 public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "Default", url:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "about",
url: "Home/About-WDI",
defaults: new { controller = "Home", action = "About"}
);
}
在global.asax文件中,我编写了以下代码:
RouteConfig.RegisterRoutes(RouteTable.Routes);
现在的问题是当我输入http://localhost:60123/Home/About-WDI
它给我一个错误,说未找到资源
以上代码中有什么问题?
谢谢如评论中所述,考虑到路线的顺序。由于{id}参数是可选的,所以URL将由第一条路由匹配。因此,只需交换两条路线:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "about",
url: "Home/About-WDI",
defaults: new { controller = "Home", action = "About"}
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
正如评论中已经提到的,考虑到路线的顺序。由于{id}参数是可选的,所以URL将由第一条路由匹配。因此,只需交换两条路线:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "about",
url: "Home/About-WDI",
defaults: new { controller = "Home", action = "About"}
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
路线定义的顺序很重要(第一场比赛获胜)。将
关于
路线放在默认
路线之前,您的操作名称是什么,关于还是关于WDI?默认路线始终放在最后(最常见的路线)。最上面的路线应该是最具体的路线定义。路线定义的顺序很重要(第一场比赛获胜)。将关于
路线放在默认
路线之前,您的操作名称是什么,关于还是关于WDI?默认路线始终放在最后(最常见的路线)。最上面的路线应该是最具体的路线定义。