Zugriff auf cshtml im referenzierten Webapi-Projekt

9

Azure-Funktions-App verweist auf ein webApi -Projekt, das razorEngine verwendet, um cshtml view zu erstellen.

Das Problem ist der Zugriff auf die cshtml-Datei. Bis jetzt benutzte ich:

HostingEnvironment.MapPath("~/Views/templates/") + "test.cshtml";

um auf die Datei zuzugreifen, die früher als eigenständiges Projekt mit webApi verwendet wurde. Jetzt wird der Pfad als referenzierte Assembly mit

ausgewertet

E:\Web\Proj.Func\bin\Debug\net461\test.cshtml

was nicht der richtige Pfad zur cshtml Datei ist.

Wie löst man das?

    
Shyamal Parikh 22.01.2018, 16:12
quelle

2 Antworten

3

Wenn Sie ein Web-API-Projekt als Referenz zu einem anderen Projekt hinzufügen und es wie eine Klassenbibliothek verwenden, funktioniert HostingEnvironment.MapPath nicht. Tatsächlich ist der api-Controller nicht mehr gehostet und HostingEnvironment.IsHosted ist falsch.

Als eine Option können Sie den Code schreiben, um die Datei wie folgenden Code zu finden, dann wird der Code in beiden Fällen funktionieren, wenn es als Web-API gehostet wird oder wenn es als Klassenbibliothek verwendet wurde.

Vergessen Sie nicht, die Dateien in das Ausgabeverzeichnis aufzunehmen, damit sie in die Nähe des Ordners bin des Azure-Funktionsprojekts kopiert werden.

%Vor%

Und hier ist die Funktion:

%Vor%     
Reza Aghaei 28.01.2018, 15:34
quelle
1

Sie können diesen Code verwenden

%Vor%     
Kahbazi 27.01.2018 08:34
quelle