5

私は c#、asp.net を使用しており、Web アプリケーションで作業しています。

私は最初、絶対パスである必要がある相対パスを持っていました。以下は機能しますが、絶対パスを取得する必要があります。

    return Chart.RenderChartHTML("../../Charts/MSLine.swf");

次のことを試しましたが、うまくいきませんでした (ハード ドライブ上の .swf への完全なパスが表示されることに注意してください)。

    string mslinepath = HttpContext.Current.Server.MapPath("Charts/MSLine.swf");

    return Chart.RenderChartHTML(mslinepath);

次に、動作する次のことを試しました。

    string mslinepath = VirtualPathUtility.ToAbsolute("~/Charts/MSLine.swf");

    return Chart.RenderChartHTML(mslinepath);

VirtualPathUtility.ToAbsolute が機能するのに、他の機能が機能しない理由を疑問に思います。

4

1 に答える 1

13

MapPath指定された仮想パスに対応するサーバー上の物理ファイル パスを返します。
(例: "C:\inetpub\wwwroot\Charts\MSLine.swf")

ToAbsoluteアプリ相対仮想パス (「~/」で始まるパス) を絶対仮想パスに変換します。
(例: "/AppName/Charts/MSLine.swf")

于 2012-11-07T18:37:58.460 に答える