【问题标题】:Retrieve domain url检索域 url
【发布时间】:2010-10-13 13:44:15
【问题描述】:

我想在 asp.net 中检索我的域 url。

例如,如果我的网址是:

http://www.mydomain.com/blog/currentPage.aspx?id=156

我只想要那部分

http://www.mydomain.com/blog/

谁能帮帮我?

【问题讨论】:

  • 在您的情况下,域是 www.domain.com 而 /blog/currentPage.aspx?id=156 是相对 url
  • 服务器变量会为你解决这个问题。 link text

标签: c# asp.net url


【解决方案1】:
// Request.Uri
Uri originalUrl = new Uri("https://www.example.com/blog/currentPage.aspx?id=156");

// www.examle.com
string domain = originalUrl.Host;

// https://www.example.com
string domainUrl = String.Concat(originalUrl.Scheme, Uri.SchemeDelimiter, originalUrl.Host);

【讨论】:

  • 我喜欢您的回答,因为其中包含示例!如果它更彻底,更具可读性,那就更好了。例如,将您的示例放在每个代码的下方或上方会更清楚。
  • @Ken:确定!查看更新版本。这是你要找的吗?另请注意,答案是 9 岁。
  • 是的。有时我会错过这些东西的日期——我需要特别注意检查它们。就是说-我认为您的答案仍然相关,并且布局清楚地表明代码的结果将实际实现(希望我能投票更多)。有时人们宣称这会给你等等等等,他们肯定知道等等等等“看起来像”和是什么。寻找答案的人可能是新手,或者在特定代码领域没有经验,不知道或有不好的预感。
【解决方案2】:

你应该对这个答案做一些字符串操作:

how to get url of the current page in c#

另外看看segments

【讨论】:

    【解决方案3】:

    你有很多选择:

    string root = this.ResolveUrl("~")
    

    或者

    Uri requestUri = Context.Request.Url;
    string baseUrl = requestUri.Scheme + Uri.SchemeDelimiter + requestUri.Host + (requestUri.IsDefaultPort ? "" : ":" + requestUri.Port);
    

    或者

    string baseUrl = Request.Url.GetLeftPart(UriPartial.Authority);
    

    如果你想 /blog 附加到最后两个,添加

    + Request.ApplicationPath
    

    【讨论】:

    • 我认为你的回答是最好的。只是最好使用 String.Concat 和 Request.ApplicationPath 已经是一个字符串。
    • 我对这个答案的唯一建议是改进它 - 有一个示例 URL 以及通过代码示例生成的这些 URL 的字符串。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-11
    • 2012-10-16
    • 1970-01-01
    • 2012-07-02
    相关资源
    最近更新 更多