自定义路由不匹配
本文关键字:不匹配 路由 自定义 | 更新日期: 2023-09-27 18:26:30
在routeConfig中,我有代码:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Contact", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Custom",
url: "Secret/Routes/1",
defaults: new { controller = "Account", action = "Login", id = UrlParameter.Optional }
);
}
我已创建自定义路线为:
routes.MapRoute(
name: "Custom",
url: "Secret/Routes/1",
defaults: new { controller = "Account", action = "Login", id = UrlParameter.Optional }
);
但是当我给出直接链接作为:
http://localhost:4618/Secret/Routes/1
它不会呈现为帐户控制器的登录操作。
请帮帮我。我在路上哪里出错了???
当URL是
http://localhost:4618/Secret/Routes/1
当路由处理URL请求时,它会尝试将请求的URL与路由相匹配。将URL请求与路由匹配取决于以下所有条件:
-
已定义的管线图案或默认管线包含在项目类型中的模式(如果有的话)。
-
将它们添加到Routes集合的顺序。
-
为管线提供的任何默认值。
-
为管线提供的任何约束。
-
是否已定义路由以处理与物理文件。
有关ASP.NET路由的详细信息。
你必须改变路线的顺序。
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Custom",
url: "Secret/Routes/1",
defaults: new { controller = "Account", action = "Login", id = UrlParameter.Optional}
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Contact", id = UrlParameter.Optional }
);
}