Asp.net

帶有名為“PropertiesController”的控制器的 ASP.NET MVC 路由

  • June 19, 2015

我在嘗試使用名稱為 PropertiesController 的控制器(以及隨後的路由)時遇到了一個棘手的問題(請耐心等待,因為我是 MVC 的新手)。

我相信這是因為我的解決方案中有一個名為“Properties”的目錄(我無法真正刪除)。有辦法解決這個問題嗎?

路線設置只是一個簡單的路線:

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

請求“ http://localhost/aptment2/properties/ ”時我在 IIS7 中遇到的錯誤是:

替代文字

當然有辦法解決這個問題,我就是找不到?乾杯。

由於其他人也有同樣的問題,我猜你在這裡遇到了一個保留的關鍵字(我想 ClassControllers 也出來了)。

這也不是第一次發生 - 深入探勘環境的內部,您也無法路由到 Windows 的保留關鍵字

PropertiesController在配置為使用 IIS Express 的 MVC 3 應用程序上進行了設置。我沒有得到你所做的確切錯誤,但它是相似的(404.20 沒有預設文件),我確信它是出於同樣的原因。

它在我們的生產環境中根本不會引起問題,因為我們發布了應用程序的編譯版本,然後它沒有 Properties 文件夾。

為了在本地開發時解決這個問題,我將所有靜態內容(腳本/css/etc…)放在一個目錄中,我在打開RouteExistingFiles.

 routes.IgnoreRoute("static/{*wildcard}");
 routes.RouteExistingFiles = true;

這解決了我的問題,現在我可以無錯誤地瀏覽 example.com/properties/。

引用自:https://stackoverflow.com/questions/1070710