Ist es möglich, einen Ordner aus der URL in ASP.NET MVC zu entfernen verwenden?
Nr
MVC verwendet keine Dateien und Ordner ihre Endpunkte Host - es nutzt Controller und Aktionen. Daher ist es nicht möglich, einen "Ordner" aus der URL zu entfernen, da sich in der URL keine Ordner befinden.
MVC verwendet jedoch .NET-Routing, mit dem Sie Ihre URLs so konfigurieren können, wie Sie möchten. Um also eine Route zu erstellen, die wie in Ihrem Beispiel /page
entspricht, müssen Sie eine Route einfügen, um diese URL Ihrer RouteConfig.cs
-Datei zuzuordnen.
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 }
);
}
}
Entschuldigung, ich hätte meine Frage klarer machen sollen, dass/mvc/der Ordner ist, der die MVC-Anwendung enthält. Kann RouteConfig.cs den/mvc/URL-Teil sehen und routen? Ich nahm an, dass URLs nur innerhalb von/mvc/... routen können, wenn das sinnvoll ist. – Organic
Die einfachste Lösung ist, den Ordner zu entfernen und die Anwendung im Stammverzeichnis der Website zu hosten oder [verschieben Sie das Stammverzeichnis der Website über IIS] (https://forums.iis.net/t/1207046.aspx). Wenn die Umstände es erfordern, müssen Sie das Unterverzeichnis behalten. Sie können das [IIS URL Rewrite Module] (http://www.iis.net/downloads/microsoft/url-rewrite) verwenden, um [das Stammverzeichnis in das Unterverzeichnis zu schreiben] (http://forums.asp.net/t/1479881.aspx?URL+Der + Stammordner + in einen Unterordner schreiben. Dies ist kein Problem, das Sie versuchen sollten, innerhalb der Anwendung zu lösen, da es vollständig außerhalb existiert. – NightOwl888
Der Stamm der Website ist eine Webforms-Website. Als Beweis des Konzepts habe ich bereits versucht, die mvc-Anwendung in den Stamm der Website zu verschieben, indem ich die web.config-Datei kopiere, die mvc-DLL in den Root-Bin-Ordner kopiere und den Views-Ordner in den Stammordner kopiere. Ich habe einen Fehler 404 beim Versuch, eine mvc-URL zu laden. – Organic