2012-12-04 22 views
4

我有一個ASP.Net MVC控制器操作,需要返回一個json結果(它實際上是jsonp,但這不重要),其中包含另一個html文件的內容。所以基本上,我想這樣做:如何讀取ASP.Net MVC中的文件內容?

[JsonpFilter] 
public JsonResult GetHeader() 
{ 
    var html = System.IO.File.ReadAllText("/htm/external/header.htm"); 

    return Json(new { html = html }, JsonRequestBehavior.AllowGet); 
} 

但是,它沒有找到正確的文件。它在C目錄下查找(無法找到'C:\ htm \ external \ header.htm'路徑的一部分),當我想要它查看服務器的根目錄(當然是加上/ htm/external)。

如何讀取此文件?它是外部可用的,所以我想我可以爲它創建一個單獨的Web請求,但似乎我應該能夠直接定位它。

回答

14

您可以使用HttpServerUtility.MapPath Method解決它的物理位置的當前虛擬路徑:

string html = System.IO.File.ReadAllText(HttpContext.Current.Server.MapPath("~/htm/external/header.htm")); 
+0

這就是我需要的。謝謝。 –