C# 自定义管线替代其他管线

C# 自定义管线替代其他管线,c#,asp.net-mvc,model-view-controller,routes,C#,Asp.net Mvc,Model View Controller,Routes,我必须在这里寻求帮助,因为我不知道这是怎么发生的,这里出了什么问题 以下是路线: public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "View", url: "{controll

我必须在这里寻求帮助,因为我不知道这是怎么发生的,这里出了什么问题

以下是路线:

        public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "View",
            url: "{controller}/{action}/{id}/{cid}/{pid}",
            defaults: new { controller = "Read", action = "R", id = UrlParameter.Optional, cid = UrlParameter.Optional, pid = UrlParameter.Optional }
        );

        routes.MapRoute(
            name: "JsonResult",
            url: "jsonresult/{id}/{cid}/{pid}",
            defaults: new { controller = "Find", action = "Readable", id = UrlParameter.Optional, cid = UrlParameter.Optional, pid = UrlParameter.Optional}
        );

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}",
            defaults: new { controller = "Read", action = "Index" }
        );
    }
现在它有几个问题:

首先-底部的默认设置根本不起作用。由于某种原因,我实际上将
“查看”
路由设置为
默认路径。
第二个-
JsonResult
route得到
404错误
,如果我把它放在顶部,它会消失,但
View
route不工作


我真的不知道如何修复;l

始终将默认路线放在顶部

谈到您的
jsonresult
问题,您缺少控制器名称

public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

       routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}",
            defaults: new { controller = "Read", action = "Index" }
        );

        routes.MapRoute(
            name: "View",
            url: "{controller}/{action}/{id}/{cid}/{pid}",
            defaults: new { controller = "Read", action = "R", id = UrlParameter.Optional, cid = UrlParameter.Optional, pid = UrlParameter.Optional }
        );

        routes.MapRoute(
            name: "JsonResult",
            url: "{controller}/{id}/{cid}/{pid}", /*Changed to Controller here*/
            defaults: new { controller = "Find", action = "Readable", id = UrlParameter.Optional, cid = UrlParameter.Optional, pid = UrlParameter.Optional}
        );

    }

始终将默认路线放在顶部

谈到您的
jsonresult
问题,您缺少控制器名称

public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

       routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}",
            defaults: new { controller = "Read", action = "Index" }
        );

        routes.MapRoute(
            name: "View",
            url: "{controller}/{action}/{id}/{cid}/{pid}",
            defaults: new { controller = "Read", action = "R", id = UrlParameter.Optional, cid = UrlParameter.Optional, pid = UrlParameter.Optional }
        );

        routes.MapRoute(
            name: "JsonResult",
            url: "{controller}/{id}/{cid}/{pid}", /*Changed to Controller here*/
            defaults: new { controller = "Find", action = "Readable", id = UrlParameter.Optional, cid = UrlParameter.Optional, pid = UrlParameter.Optional}
        );

    }