我有一個ASP.NET MVC 4應用程序(使用.NET框架4.5)與擴展名的URL。該網站包含一些靜態文件,但所有無擴展請求應該進入MVC路由。如何將對磁盤上存在的目錄的請求路由到ASP.NET MVC?
這一切工作正常,就像請求:
- /
- /新聞
- /FR /新聞
但是如果我做了/ FR我得到錯誤的請求:
HTTP Error 403.14 - Forbidden,
The Web server is configured to not list the contents of this directory.
我明白,這是因爲實際上在磁盤上存在一個/ fr目錄,但是我仍然想將這個請求映射到我的MVC應用程序。它不是刪除fr目錄的選項,因爲它包含一些靜態文件。
這可能嗎?我曾嘗試將runAllManagedModulesForAllRequests="true"
添加到system.webServer中的模塊元素中(我並不真的想要這樣做,但它無濟於事)。
編輯 - 在情況下,它是有用的,這裏是路由:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("cid/{*pathInfo}");
routes.MapRoute(
"Page",
"{*PageId}",
new { controller = "Page", action = "Page" }, // Parameter defaults
new { pageId = @"^(.*)?$" } // Parameter constraints
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
我添加了路由,雖然我不確定這是否相關,因爲MVC路由從不會爲/ fr請求啓動。我很確定這是由於DirectoryListingModule選取它,但我無法從圖片中得到它(如在http://stackoverflow.com/questions/21842206/how-to-disable-or- reprioritize-iis-directorylistingmodule-under-mvc-module) – Will
看看這裏[http://stackoverflow.com/a/17336588/3383479](http://stackoverflow.com/a/17336588/3383479) –
不確定如何幫助,如上所述我不能刪除/ fr目錄 – Will