2014-03-13 107 views
0

出於某種原因,我的路由不被.NET看到。.NET MVC路由問題

 routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

     routes.MapRoute(
      "RSSFeed", // Route name 
      "Blog/RSSFeed", // URL with parameters 
      new { controller = "Blog", action = "RSSFeed", id = UrlParameter.Optional } // Parameter defaults 
     ); 

     routes.MapRoute(
      "About", // Route name 
      "About/", // URL with parameters 
      new { controller = "About", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
     ); 

     routes.MapRoute(
     "Contact", // Route name 
     "Contact/", // URL with parameters 
     new { controller = "Contact", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
    ); 


     routes.MapRoute(
      "Admin", // Route name 
      "admin/", // URL with parameters 
      new { controller = "Admin", action = "CreatePost", id = UrlParameter.Optional } // Parameter defaults 
     ); 

     routes.MapRoute(
     "Resume", // Route name 
     "resume/", // URL with parameters 
     new { controller = "Resume", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
     ); 

     routes.MapRoute(
     "ViewArticle", // Route name 
     "{controller}/{action}/{id}/{friendly}", // URL with parameters 
     new { friendly = "" } // Parameter defaults 
     ); 



     routes.MapRoute(
     "DownloadResume", // Route name 
     "DownloadResume/", // URL with parameters 
     new { controller = "Resume", action = "DownloadResume", id = UrlParameter.Optional } // Parameter defaults 
     ); 
//Any of these 
     routes.MapRoute(
     "cpe", // Route name 
     "Play/CreatePlayEvent/{groupid}/{username}/{activeplay}/{game}", // URL with parameters 
     new { controller = "Play", action = "CreatePlayEvent", groupID = "0", username = "", activeplay = "", game = "" } // Parameter defaults 
    ); 

     routes.MapRoute(
      "CheckPlayEvent", // Route name 
      "{controller}/{action}/{groupID}", // URL with parameters 
      new { controller = "Play", action = "CheckPlayEvent", groupID = "0" } // Parameter defaults 
     ); 

     routes.MapRoute(
      "clpe", // Route name 
      "Play/ClearPlayEvent/{groupid}/{username}", // URL with parameters 
      new { controller = "Play", action = "ClearPlayEvent", groupID = "0", username = "" } // Parameter defaults 
     ); 

// END破碎路由 routes.MapRoute( 「默認」,//路線名稱 「{控制器}/{行動} /(編號)」,// URL與參數 新{控制器=「Blog」,action =「Index」,id = UrlParameter.Optional} //參數默認值 );

myurl.com/Play/CheckPlayEvent/0

組ID保持被看作是在控制器側NULL。任何人?此外,似乎沒有內置的路由調試器,或者至少我沒有看到過。大家用什麼來調試路由?

有沒有方法可以說控制器名稱,方法名稱和參數使URL?

+0

路由不工作,或者你到達控制器但空groupID?另外,如果我們能看到所有的路由,那麼路由問題通常會有所幫助,因爲它幾乎總是排序問題/路由衝突。 – Fenton

+0

嘿史蒂夫,我已經更新了所有的路線。我已經嘗試了很多不同的選擇......我想我可以將控制器和操作名稱硬編碼到URL段中,並只傳遞變量作爲段的其餘部分,顯然情況並非如此。我的印象是每條路線都是唯一的,由「路線名稱」定義? CPE,CheckPlayEvent和clpe有問題,我可以到達控制器,但參數始終爲空。 –

回答

2

我認爲以下途徑越來越命中,而您的預期路線:

routes.MapRoute(
    "ViewArticle", // Route name 
    "{controller}/{action}/{id}/{friendly}", // URL with parameters 
    new { friendly = "" } // Parameter defaults 
    ); 

友好是可選的,所以{controller}/{action}/{id}風格路線也將達到這一點 - 它看起來真的很喜歡你遇到問題的途徑用。

移動您的播放路線以上這一個,然後重試。