簡體   English   中英

相對〜絕對URL路徑的一般解決方案?

[英]General solution for relative ~path to absolute url?

我有一些要求的Uri實例 而且我有“〜/ Pages / SomePage.aspx”

var uri = new Uri("http://www.contoso.com/");
var relativeUrl = "~/Pages/SomePage.aspx";

如何輕松地將兩者結合?

您可能會問什么背景? 它是一個控制台應用程序,在其中手動構建了Uri和代字號相對路徑(實際上,這是獲得“常規解決方案”的謊言,而不是Page.Resolve等)。

我嘗試了一些方法(即IE:HttpStyleUriParser),但沒有得到正確的結果。 而且我不想用String.Format("{0}://{1}{2}{3}")到達那里。

波浪號~在* nix系統中用於home directory of currect user

在.Net / C#/ Windows應用程序中,您必須將其替換為當前用戶的主目錄。

這對我有用:

static class Program
{
    static void Main(string[] args)
    {

        var uri = new Uri("http://www.contoso.com/");
        var relativeUrl = new Uri("~/Pages/SomePage.aspx".Replace("~",string.Empty),UriKind.Relative);
        Uri result;
        bool success = Uri.TryCreate(uri, relativeUrl,out result);

        Console.WriteLine(success);
        Console.WriteLine(result.ToString());
    }

}

輸出:

真正

http://www.contoso.com/Pages/SomePage.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM