2009-07-01 109 views
7

我有一個棘手的問題(與我一樣,因爲我是新來的MVC)嘗試使用控制器(和一個路由隨後)與名稱PropertiesController 。ASP.NET MVC路由與控制器命名爲「PropertiesController」

我相信這是因爲在我的解決方案中有一個名爲「屬性」的目錄(我無法真正刪除它)。有沒有辦法解決這個問題?

路由設置僅僅是一個簡單的途徑:

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

,並要求「http://localhost/aptment2/properties/」當我在IIS7得到的錯誤是:

alt text

當然是有辦法解決這我無法找到?乾杯。

+0

您是試圖直接瀏覽到該視圖還是首先通過default.aspx頁面(例如使用F5或Ctrl + F5)?只是好奇,如果路由註冊被繞過而發生,您將該視圖設置爲起始頁而不是default.aspx。 – nkirkes 2009-07-01 19:00:52

+0

剛剛燒2個小時試圖調試這個,不得不記住他的SO第一次下一次 – mxmissile 2012-06-07 19:34:21

回答

2

運行一個快速測試,我得到相同的行爲。使用除「屬性」之外的其他東西是否可行?

0

我不知道它是否適合您,但您可以嘗試禁用到現有文件的路由。

routes.RouteExistingFiles = false; 
4

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

因爲我們發佈了應用程序的編譯版本,所以它在我們的生產環境中根本沒有問題,然後它沒有Properties文件夾。

爲了在本地開發時避開這個問題,我將所有靜態內容(scripts/css/etc ...)放在一個目錄中,我忽略它,同時打開RouteExistingFiles

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

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