我正在使用我正在建设的博客上的Facebook评论插件。它有一些FBXML标签,由页面上引用的facebook javascript解释。

这一切都很好,但我必须将当前的、完全限定的URL传递给插件。

<div style="width: 900px; margin: auto;">
    <div id="fb-root"></div>
    <fb:comments href="URL HERE" num_posts="10" width="900"></fb:comments>
</div>

获取当前页面URL的最佳方法是什么?请求URL。

解决方案

下面是我的解决方案的最终代码:

<fb:comments href="@Request.Url.AbsoluteUri" num_posts="15" width="900"></fb:comments>

当前回答

这对我来说适用于Core 3.0的完整URL:

$"{Request.Scheme}://{Request.Host.Value}{Request.Path.Value}"

其他回答

在其他答案中没有提到的一件事是大小写敏感性,如果它将在多个地方被引用(在最初的问题中没有,但值得考虑,因为这个问题出现在许多类似的搜索中)。根据其他答案,我发现以下方法最初对我有用:

Request.Url.AbsoluteUri.ToString ()

但为了更可靠,这就变成了:

.ToLower Request.Url.AbsoluteUri.ToString () ()

然后对于我的要求(检查网站正在访问的域名并显示相关内容):

.ToLower Request.Url.AbsoluteUri.ToString () () .Contains(“xxxx”)

Request.Url.PathAndQuery

应该工作得很好,特别是如果你只想要相对Uri(但保持查询字符串)

这对我来说适用于Core 3.0的完整URL:

$"{Request.Scheme}://{Request.Host.Value}{Request.Path.Value}"

浏览器历史记录的大小写(单页样式)

HttpContext.Request.UrlReferrer

您可以使用Request。RawUrl Request.Url。OriginalString, Request.Url.ToString()或Request.Url.AbsoluteUri。