是否有可能從URL中刪除文件夾,以便domain.com/mvc/page/成爲domain.com/page/?是否可以從ASP.NET MVC中的URL中刪除文件夾?
這是在Windows Server 2012上運行的IIS 7.5的ASP.NET 4.5 MVC應用程序
編輯:
/MVC /是包含MVC Web應用程序的文件夾,在URL域.COM/MVC /頁/不管/其它/
是否有可能從URL中刪除文件夾,以便domain.com/mvc/page/成爲domain.com/page/?是否可以從ASP.NET MVC中的URL中刪除文件夾?
這是在Windows Server 2012上運行的IIS 7.5的ASP.NET 4.5 MVC應用程序
編輯:
/MVC /是包含MVC Web應用程序的文件夾,在URL域.COM/MVC /頁/不管/其它/
問我記得在MVC URL不依賴於文件夾結構,但對控制和路由。(屬性路由)
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
。請檢查這個鏈接。 ASP.NET MVC Routing Overview (C#)。我想你可以在那裏找到更多的解釋。 對於一個鏈接,您可以使用屬性
[Route("orders/{id:int}/{orderCode?}")]
public async Task<ActionResult> Order(int id, string orderCode = "")
{
////
}
是否有可能在ASP.NET MVC的URL刪除文件夾?
號
MVC不使用文件和文件夾來承載其終點 - 它使用的控制器和行動。因此,從URL中刪除「文件夾」是不可能的,因爲URL中沒有文件夾。
但是,MVC使用.NET路由,它允許您配置您的URL看看你想要的。因此,要根據您的示例製作匹配/page
的路線,您需要插入路線以將該網址與您的RouteConfig.cs
文件相匹配。
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
// Route to domain.com/page that calls an action named Page on the HomeController
routes.MapRoute(
name: "PageRoute",
url: "page",
defaults: new { controller = "Home", action = "Page" }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
對不起,我應該讓我的問題更清楚一點,即/ mvc /是包含MVC應用程序的文件夾。 RouteConfig.cs可以查看和路由/ mvc/URL部分嗎?我認爲它只能在/ mvc/...中路由URL,如果這是有道理的。 – Organic
最簡單的解決方案是刪除該文件夾並將該應用程序託管在網站的根目錄中或[通過IIS移動網站的根目錄](https://forums.iis.net/t/1207046.aspx)。但是如果情況決定你必須保留子目錄,你可以使用[IIS URL重寫模塊](http://www.iis.net/downloads/microsoft/url-rewrite)[將根目錄重寫到子目錄]( http://forums.asp.net/t/1479881.aspx?URL+Rewriting+the+root+folder+to+a+subfolder)。這不是您應該嘗試在應用程序內部解決的問題,因爲它完全存在於外部。 – NightOwl888
網站的根目錄是一個webforms網站。作爲概念證明,我已經嘗試將mvc應用程序組合到web.config文件中,將mvc .dll複製到根bin文件夾並將Views文件夾複製到根目錄,從而將mvc應用程序移動到網站的根目錄。嘗試加載mvc網址時出現404錯誤。 – Organic