我正在使用我正在建设的博客上的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>

当前回答

我也在寻找这个Facebook的原因,到目前为止,没有一个答案是必要的,或者太复杂了。

@Request.Url.GetLeftPart(UriPartial.Path)

获取“不包含”查询字符串的完整协议、主机和路径。如果您使用的不是默认的80,也包括端口。

其他回答

我最喜欢的…

Url.Content(Request.Url.PathAndQuery)

或者只是……

Url.Action()

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

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

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

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

HttpContext.Request.UrlReferrer

对我来说,问题是当我试图在控制器的构造函数中访问HTTPContext时,HTTPContext还没有准备好。当移动到索引方法,它工作:

var uri = new Uri(Request.Url.AbsoluteUri);
url = uri.Scheme + "://" + uri.Host + "/";enter code here