Was ist das äquivalent der Server.MapPath in ASP.NET Core?
Habe ich diese Zeile in einigen code, den ich kopieren möchte in meinem controller, aber der compiler beschwert sich, dass
Dem Namen 'Server' existiert nicht im aktuellen Kontext
var UploadPath = Server.MapPath("~/App_Data/uploads")
Wie kann ich erreichen, das entspricht in ASP.NET Core?
- Verwenden
IHostingEnvironment.WebRootPath
und verwenden Sie dannPath.Combine
mit dem zweiten argument zugewiesen Zielverzeichnis. Siehe Server.MapPath Gegenwert in ASP.NET Kern für weitere Informationen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
In Asp.NET Kern, der hosting-Umgebung wurde abstrahiert, mit der Schnittstelle, IHostingEnvironment
Den ContentRootPath Eigenschaft erhalten Sie Zugriff auf den absoluten Pfad zu der Anwendung, die content-Dateien.
Können Sie auch die Eigenschaft, WebRootPath wenn Sie möchten, um Zugriff auf die web-servable root-Pfad (www-Ordner standardmäßig)
Können Sie injizieren diese Abhängigkeit in den controller und access ist es wie folgt:
UPDATE
IHostingEnvironment wurde als veraltet markiert mit .NET Core 3.0 wie bereits von @amir133. Bitte verwenden Sie IWebHostEnvironment, wie unten gezeigt, wenn der Ziel-framework ist .NET Core 3.0:
Dank @ashin für seine Antwort, aber
IHostingEnvironment
ist veraltet in .Net core 3!!laut diese :
Veraltete Typen (Warnung):
Neue Arten:
Also müssen Sie IWebHostEnvironment statt IHostingEnvironment.