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