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

8

我有一个ASP.Net MVC控制器操作需要返回一个json结果(实际上是jsonp,但这不重要),其中包含另一个html文件的内容。因此,基本上我想做到这一点:

[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个回答

30

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

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

这就是我需要的。谢谢。 - Mike Pateras

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接