我有一個應用程序到IIS 7的應用程序池中。我在應用程序中添加了一個新的虛擬目錄。我的應用程序在http://localhost.com/上運行,我想在http://localhost.com/VirtualDirectory/上運行我的虛擬目錄。我想這樣做的原因是虛擬目錄被用作應用程序。我想使用虛擬目錄作爲SubSite。我的問題是我無法訪問虛擬目錄下的控制器和視圖。當我將ActionResult方法的返回結果更改爲「return View(」/ VirtualDirectory/Views/Home/Index.cshtml「);」時,我可以訪問它。我不想在每個返回的Action結果上對VirtualDirectory進行硬編碼。ASP.NET MVC路由配置問題
我的路線是配置:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Home", // Route name
url: "{id}", // URL with parameters
defaults: new { controller = "Home", action = "Index" /*, id = ""*/ } // Parameter defaults
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Defaut", id = UrlParameter.Optional } // Parameter defaults
);
}
我試圖讓下一個變化:
routes.MapRoute(
"Default", // Route name
"VirtualDirectory/{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Defaut", id = UrlParameter.Optional } // Parameter defaults
);
但是,當我嘗試加載http://localhost.com/VirtualDirectory我已經得到了消息:
HTTP錯誤403.14 - 禁止 Web服務器被配置爲不列出此目錄的內容。
你不應該需要在所有更改路由到一個虛擬目錄 –
下運行一個網站時,我不會讓我得到了消息的變化: 虛擬路徑「/Views/Home/Index.cshtml」地圖到另一個應用程序,這是不允許的。 –
你說得對。你解決我的問題男人。非常感謝你。 –