經過長時間的努力工作,思考路由衝突等等 - 我從一開始就開始了一個單獨的項目。有沒有什麼特殊的MVC控制器稱爲屬性?
它看起來像一個名爲「properties」的MVC控制器在嘗試訪問根站點(http://site/properties
)時始終返回一個403.14禁止消息 - 但是,其他頁面可以正常工作(http://site/properties/index
)。
它可以很好地作爲一個區域中的控制器,但是我不能在主站點中創建它。
我想知道是否有人知道爲什麼以及最好的方法是什麼?
經過長時間的努力工作,思考路由衝突等等 - 我從一開始就開始了一個單獨的項目。有沒有什麼特殊的MVC控制器稱爲屬性?
它看起來像一個名爲「properties」的MVC控制器在嘗試訪問根站點(http://site/properties
)時始終返回一個403.14禁止消息 - 但是,其他頁面可以正常工作(http://site/properties/index
)。
它可以很好地作爲一個區域中的控制器,但是我不能在主站點中創建它。
我想知道是否有人知道爲什麼以及最好的方法是什麼?
問題是您的項目已經包含一個名爲Properties
的文件夾,它主要用於AssemblyInfo.cs
文件,但其中還包含其他內容。用於解析發送給客戶端的文件的引擎優先於路由中的文件和文件夾。所以網址http://site/properties
正試圖從那裏服務器的內容,無論如何這最終會被阻止。
除了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 }
);
}