在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
它不会呈现给Account Controller的登录操作。
请帮帮我。我在路线上犯了什么错误
想要在何时呈现给帐户控制器登录操作 网址是
http://localhost:4618/Secret/Routes/1
答案 0 :(得分:1)
当路由处理URL请求时,它会尝试将请求的URL与路由匹配。将URL请求与路由匹配取决于以下所有条件:
您定义的路线模式或默认路线 项目类型中包含的模式(如果有)。
将它们添加到Routes集合的顺序。
您为路线提供的所有默认值。
您为路线提供的任何限制。
是否已定义路由以处理与a匹配的请求 物理文件。
有关ASP.NET Routing的更多信息。
您必须更改路线的顺序。
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 }
);
}