Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 自定义路由不匹配_C#_.net_Asp.net Mvc 4 - Fatal编程技术网

C# 自定义路由不匹配

C# 自定义路由不匹配,c#,.net,asp.net-mvc-4,C#,.net,Asp.net Mvc 4,在routeConfig中,我有代码: public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "Default", url: "{controller}/{a

在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是


当路由处理URL请求时,它会尝试将请求的URL与路由匹配。将URL请求与路由匹配取决于以下所有条件:

  • 已定义的布线模式或默认布线 项目类型中包含的模式(如果有)

  • 将它们添加到Routes集合的顺序

  • 为管线提供的任何默认值

  • 为管线提供的任何约束

  • 是否已定义路由以处理与 物理文件

更多信息

你必须改变路线的顺序

    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 }
        );
    }

将您的自定义路线置于默认路线之前(一条或多条路线很重要)路线按顺序运行(注册)。将使用匹配的第一条路由。“/Secret/Routes/1”与您的默认路由匹配(如“controller=Secret,action=Routes,id=1)。谢谢你们两位..不知道路由正常工作。解决了我的问题…谢谢
    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 }
        );
    }