2009-10-22 276 views
0

在我的頁面刷新完成後,我總是收到類似這樣的錯誤。ASP.NET MVC路由問題?

無法找到路徑'/S43G/S4_Manager/WebResource.axd'的控制器,或者它沒有實現IController。

但我得到了我的硬盤上不存在的任何文件的錯誤。無論擴展名爲 (.png,.css等)

我試過以下所有內容來修復它,而且我很難過。

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

routes.MapRoute(
"Default",            // Route name 
"{controller}/{action}/{id}",       // URL with parameters 
new { controller = "Home", action = "Index", id = "" }, // Parameter defaults 
new { controller = @"[^\.]*" } 
      ); 

什麼,我需要把我的路由任何想法,以防止它拋出異常每次一個 文件不存在。

禁止那些如何修復WebResoruce.axd問題,因爲WebResoruce.axd不應該存在。

感謝,

埃裏克=

回答

0

我覺得我的回答here給出了一個解決問題的方法,簡單地匹配所有URL和使用的約束來檢查文件類型是個.axd。

然後,所有你需要的是以下處理所有其他MapRoutes後404個請求():

routes.MapRoute(
      "Error404CatchAll", // Route name 
      "{*url}", // URL with parameters 
      new { controller = "Error", action = "Http404" } // Parameter defaults 
      );