如何在ASP.Net MVC中读取文件的内容?

Mik*_*ras 6 asp.net-mvc

我有一个ASP.Net MVC控制器动作,需要返回包含另一个html文件内容的j​​son结果(实际上是jsonp,但这并不重要).所以基本上,我想这样做:

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

    return Json(new { html = html }, JsonRequestBehavior.AllowGet);
}
Run Code Online (Sandbox Code Playgroud)

但是,它找不到合适的文件.它正在查看C目录(无法找到路径'C:\ htm\external\header.htm'的一部分),当我希望它查看服务器的根目录时(当然还有/ htm/external).

我怎么能读到这个文件?它是外部可用的,所以我想我可以为它做一个单独的Web请求,但似乎我应该能够直接定位它.

Jam*_*See 22

您可以使用HttpServerUtility.MapPath方法将虚拟路径解析为其物理位置:

string html = System.IO.File.ReadAllText(HttpContext.Current.Server.MapPath("~/htm/external/header.htm"));
Run Code Online (Sandbox Code Playgroud)