2014-11-26 5 views
0

Например, у меня есть:Как преобразовать URL абсолютный путь к относительному пути

string AbsImgURL = "~/MyStuff/Images/MsgBoxIcon/MyImg.jpg"; 

Я хочу, чтобы это было:

string AbsImgURL = "../../MyStuff/Images/MsgBoxIcon/MyImg.jpg" 

(Потому что я в настоящее время на странице «~/UI/Pages/Default.aspx ", который находится на два уровня от корня)

+0

Да, это ASP.NET –

+0

Что случилось с [VirtualPathUtility] (http://msdn.microsoft.com/en-us/library/system.web.virtualpathutility%28v= vs.110% 29.aspx)? –

+0

Брэд: Впервые я слышал об этом, не могли бы вы показать мне, как? –

ответ

0

Спасибо, парень, я, наконец, сработал с помощью VirtualPathUtility.MakeRelative. Код ниже:

 /// <summary>Convert and URL Absoluate Path to Relative Path 
    ///(For Example: "~/MyStuff/Images/MsgBoxIcon/MyImg.jpg" ==> "../../MyStuff/Images/MsgBoxIcon/MyImg.jpg" 
    ///(Assuming client is currently at the page "~/UI/Pages/Default.aspx", which is two level deep from the root).</summary> 
    private static string ConvertAbsoluteToRelativePath(string Input) 
    { 
     //Init 
     string Output = ""; 

     //Get Current URL (Ex: http://MyWebSite//...) 
     string CurrentURL = HttpContext.Current.Request.Url.AbsolutePath; 

     //Convert to Relative Path 
     Output = VirtualPathUtility.MakeRelative(CurrentURL, Input); 

     //Finally 
     return Output; 
    }