簡體   English   中英

ASP.NET MVC路由配置問題

[英]ASP.NET MVC Routing config issue

我在IIS 7的應用程序池中有一個應用程序。我在應用程序中添加了一個新的虛擬目錄。 我的應用程序運行在http://localhost.com/ ,我想運行我的虛擬目錄http://localhost.com/VirtualDirectory/ 我想這樣做的原因是將虛擬目錄用作應用程序。 我想使用虛擬目錄作為SubSite。 我的問題是我無法訪問虛擬目錄下的控制器和視圖。 當我將ActionResult方法的返回結果更改為“ return View(“ / VirtualDirectory / Views / Home / Index.cshtml”);“時,可以訪問它。 我不想在每個Return Action結果上對VirtualDirectory進行硬編碼。

我的路線配置為:

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服務器配置為不列出此目錄的內容。

您無需在應用程序的路由中進行任何更改即可在虛擬目錄中運行。

但是你仍然需要確保你使用相對路徑(而不是絕對/整個應用程序基於路徑)。 任何技術都是一樣的。 /始終忽略虛擬目錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM