1. ホーム
  2. .net

[解決済み】ASP.NET MVC - コントローラーからApp_Dataフォルダーの絶対パスを検索する

2022-04-01 16:38:33

質問

ASP.NET MVCプロジェクトのControllerからApp_Dataフォルダの絶対パスを求める正しい方法は何ですか?.xmlファイルで一時的に作業できるようにしたいので、パスをハードコードしたくありません。

これはうまくいきません。

[HandleError]
public class HomeController : Controller
{
    public ActionResult Index()
    {
        string path = VirtualPathUtility.ToAbsolute("~/App_Data/somedata.xml");

        //.... do whatever 

        return View();
    }

}

Webコンテキストの外ではVirtualPathUtility.ToAbsolute()が機能しないようですね。 string path comes back as "C:\App_Datasomedata.xml"

MVCアプリの.xmlファイルのパスはどこで決めればいいのでしょうか? global.asaxを使用して、アプリケーションレベルの変数に貼り付けますか?

どのように解決するのですか?

ASP.NET MVC1 -> MVC3

string path = HttpContext.Current.Server.MapPath("~/App_Data/somedata.xml");


ASP.NET MVC4

string path = Server.MapPath("~/App_Data/somedata.xml");


MSDNリファレンス

HttpServerUtility.MapPath メソッド