2017-01-01 13 views
1

私はここで助けを求めなければなりません。それとのserveral問題が今ありますカスタムルートは他のルートで上書きされます

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

: - すべてでは動作しません下にあるデフォルト

まず

はここでルートです。私は実際に"View"ルートを何らかの理由でDefaultルートにする。 Second-JsonResultルートは404 errorとなり、代わりにトップに置くと消えますが、Viewルートが機能しません。

私は実際に修正する方法がわかりません; l

答えて

0

常に、デフォルトのルートを上に置きます。

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

    } 
関連する問題