在ASP.Net的URL中检索锚链接

我有这样的url:

HTTP://本地主机/地点/ 663828 /曼谷天堂-餐厅-多伦多#r306040

我试图看看是否存在的锚标记一起获得它的值在代码后面做一些代码逻辑。

我一直在尝试使用Page.Request,但没有一个属性显示url的锚链接部分。

例如:

回复于(this.Page.Request.RawUrl.ToString());

相当多的尝试在这个页面上的组合/属性: http : //www.west-wind.com/weblog/posts/269.aspx

只是为了确定这个主题:

我复制Stackoverflow的方法与永久链接…:D

在ASP.NET中从服务器端检索#anchor是不可能的

这是一个客户端标志,告诉浏览器移动到页面中的特定位置。

你可以在onLoad事件中使用一些Javascript来检查一个锚,并使用ajax把它发送回服务器。

var anchorValue; var url = document.location; var strippedUrl = url.toString().split("#"); if(strippedUrl.Length > 1) anchorvalue = strippedUrl[1]; 

ref: http : //www.wacdesigns.com/2008/01/16/retrieving-anchor-value-from-url/

更明确的说,定位标记永远不会被任何浏览器作为HTTP请求的一部分发送,它只能在浏览器本地解释。 无论是ASP.NET还是任何其他Web服务器技术,Microsoft或其他方面都不会在该请求中看到该锚点。

RFC 1808
第2.4.1节 – “请注意片段标识符不被认为是URL的一部分。”

正如其他人所build议的,离您最近的客户端可能会使用浏览器窗口位置。

可以通过以下方式在C#中访问Frament:

 var uri = new Uri("http://localhost?id=2#token=23"); var fragment = uri.Fragment; // will return #token=23 

有一个问题,但浏览器不会发送片段到服务器。 无论如何,如果您收到来自服务的请求,这个信息将被包含在URL中,它也可以从服务器端获得。