在asp.net中获取绝对的Url

时间:2011-04-28 19:21:58

标签: asp.net

当我使用visual studio运行我的网站时,其根网址为:http://localhost:4657

我有包含~/Login.aspx之类路径的字符串,我需要将它们连接起来,以便返回http://localhost:4657/Login.aspx

我可以看到很多方法可以做到这一点,但是正确的方法是什么?

3 个答案:

答案 0 :(得分:6)

试试Page.ResolveUrl

string url = Page.ResolveUrl("~/Login.aspx");

如果您需要完整的网址,比如发送电子邮件或其他内容,请查看this blog post

答案 1 :(得分:2)

Request.Url怎么样? Url.Authority提供主机名或Socket(IPAddress:PortNo),段提供URL的其他部分。 只需省略最后一段,因为它包含当前页面的名称。因此i-1 *。

    string myurl = "http://"+Request.Url.Authority;
    for(int i=0;i<Request.Url.Segments.Length-1;i++)
    {
        myurl = myurl + Request.Url.Segments[i];
    }
    myurl = myurl + "login.aspx";
    Response.Redirect(myurl);

答案 2 :(得分:0)

这就是我使用的

var baseUri = new Uri(HttpContext.Current.Request.Url, "/");