MapPath vs VirtualPathUtility.ToAbsolute

时间:2012-11-07 18:30:59

标签: c# asp.net

我正在使用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工作而另一个没有。

1 个答案:

答案 0 :(得分:12)

MapPath返回服务器上与指定虚拟路径对应的物理文件路径 (例如:“C:\ inetpub \ wwwroot \ Charts \ MSLine.swf”)

ToAbsolute将应用程序相对虚拟路径(以“〜/”开头)转换为绝对虚拟路径。
(例如:“/ AppName / Chat / MSLine.swf”)