2015-12-14 112 views
6

經過長時間的努力工作,思考路由衝突等等 - 我從一開始就開始了一個單獨的項目。有沒有什麼特殊的MVC控制器稱爲屬性?

它看起來像一個名爲「properties」的MVC控制器在嘗試訪問根站點(http://site/properties)時始終返回一個403.14禁止消息 - 但是,其他頁面可以正常工作(http://site/properties/index)。

它可以很好地作爲一個區域中的控制器,但是我不能在主站點中創建它。

我想知道是否有人知道爲什麼以及最好的方法是什麼?

回答

2

問題是您的項目已經包含一個名爲Properties的文件夾,它主要用於AssemblyInfo.cs文件,但其中還包含其他內容。用於解析發送給客戶端的文件的引擎優先於路由中的文件和文件夾。所以網址http://site/properties正試圖從那裏服務器的內容,無論如何這最終會被阻止。

3

除了DavidG的answer

發佈項目時,編譯的版本沒有「屬性」文件夾。要在本地開發時解決此問題,可以將RouteExistingFiles設置爲true,以便ASP.NET路由處理所有請求。

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

     routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 
} 
相關問題