Asp.net
獲取文件系統中 ASP.NET MVC 站點的路徑
我有一個 ASP.NET MVC 項目,它有一個名為 emails 的子文件夾。這包含我的電子郵件模板的 HTM 文件。在站點的某些位置,我有一個控制器需要載入其中一個模板並將其作為電子郵件發送。
我想要做的是使用反射來獲取目前執行程序集的路徑,但它沒有像我預期的那樣工作。我回來的路是:
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\Emails\ProductAccountConfirmation.htm’
我覺得這很奇怪,因為該站點是通過 Visual Studio 託管在 IIS 中的。我原以為這會給我在 dev 中的項目文件夾中的 dll 位置和生產中 IIS 的部署文件夾。
您正在尋找的是Server.MapPath(),它將為您提供正在執行的應用程序的路徑。
因此,假設您的電子郵件子文件夾中有一個名為 template1.html 的文件。此程式碼應為您提供該 HTML 文件的完整路徑。
HttpContext.Current.Server.MapPath("/") + "\\emails\\template1.html";