2011-07-06 13 views
6

Mam projekt ASP.NET MVC, który ma podfolder o nazwie e-maile. Zawiera pliki HTM dla szablonów wiadomości e-mail. W niektórych punktach witryny mam kontroler, który musi załadować jeden z tych szablonów i wysłać go jako e-mail.Uzyskaj ścieżkę witryny ASP.NET MVC w systemie plików

Próbuję użyć odbicia, aby uzyskać ścieżkę bieżącego zespołu wykonawczego, ale nie działa tak, jak bym tego oczekiwał. Ścieżka wracam jest:

var directory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); 

„C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET iles \ ssl \ 1da130c4 \ f8e7810e \ assembly \ DL3 \ 5f253aca \ 1a71f123_e83bcc01 \ Emaile \ ProductAccountConfirmation.htm”

Uważam to dziwne jak na miejscu jest obsługiwana w IIS za pomocą programu Visual Studio. Pomyślałbym, że to dałoby mi położenie dll w moim folderze projektu w dev i folderze wdrażania dla IIS w produkcji.

Odpowiedz

1

W środowisku ASP.Net kopia składa się z zestawów i jest to kopia używana w środowisku wykonawczym. Twoje biblioteki DLL w folderze projektu są jedynie szablonami.

W jakim celu potrzebny jest ten katalog? Może istnieć alternatywny sposób osiągnięcia twoich celów.

1

można uzyskać ścieżkę katalogu głównego twojej aplikacji z:

@HostingEnvironment.ApplicationPhysicalPath 
4

Więc powiedzmy, że masz plik o nazwie template1.html w wiadomości e-mail podkatalogu. Ten kod powinien dać ci pełną ścieżkę tego pliku HTML.

HttpContext.Current.Server.MapPath("/") + "\\emails\\template1.html"; 
3
AppDomain.CurrentDomain.BaseDirectory 
+0

Kiedy odpowiesz na stanowisko, prosimy dodać szczegółowe wyjaśnienie lub łącza. – AFract

+0

Po prostu doskonały, działa nawet na podstronach pod IIS. –

Powiązane problemy