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

时间:2012-12-04 21:02:20

标签: 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);
}

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

如何阅读此文件?它是外部可用的,所以我想我可以为它做一个单独的Web请求,但似乎我应该能够直接定位它。

1 个答案:

答案 0 :(得分:21)

您可以使用HttpServerUtility.MapPath Method

将虚拟路径解析为其物理位置
string html = System.IO.File.ReadAllText(HttpContext.Current.Server.MapPath("~/htm/external/header.htm"));