7

別のhtmlファイルの内容を含むjson結果(実際にはjsonpですが、これは重要ではありません)を返す必要があるASP.NetMVCコントローラーアクションがあります。だから基本的に、私はこれをしたいです:

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

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

ただし、適切なファイルが見つかりません。サーバーのルート(もちろん/ htm / external)を調べたいときに、Cディレクトリ(パス'C:\ htm \ external \ header.htm'の一部が見つかりませんでした)を調べています。

このファイルを読み取るにはどうすればよいですか?外部から入手できるので、別のWebリクエストを作成できると思いますが、直接ターゲットにできるはずです。

4

1 に答える 1

28

HttpServerUtility.MapPathメソッドを使用して、物理的な場所への仮想パスを解決できます。

string html = System.IO.File.ReadAllText(HttpContext.Current.Server.MapPath("~/htm/external/header.htm"));
于 2012-12-04T21:14:25.350 に答える