我有一个ASP.Net MVC控制器动作需要返回包含另一个html文件内容的json结果(实际上是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请求,但似乎我应该能够直接定位它。
答案 0 :(得分:21)
您可以使用HttpServerUtility.MapPath Method:
将虚拟路径解析为其物理位置string html = System.IO.File.ReadAllText(HttpContext.Current.Server.MapPath("~/htm/external/header.htm"));