有一个网址。 http://website.com/ap/mob/en#contactus。我想要抓住包括#contactus在内的完整网址。我试图用Request.Url.AbsoluteUri从Page_load事件中捕获URL,但我的目的并没有得到解决。在这方面有谁能帮助我?
答案 0 :(得分:0)
这是不可能的,因为浏览器不会将散列部分发送到服务器。当然有workarounds involving JavaScript,但那些会打开你的脚本注入应用程序。
片段标识符的功能与其余部分不同 URI:即它的处理完全是客户端,没有 来自网络服务器的参与 - 当然是服务器通常 有助于确定MIME类型,MIME类型决定了 处理碎片。当代理(例如Web浏览器) 从Web服务器请求Web资源,代理将URI发送到 服务器,但不发送片段。相反,代理等待 为服务器发送资源,然后代理处理 资源根据文档类型和片段值。
答案 1 :(得分:0)
'#'在Url中通常用于将用户带到同一页面的不同部分。如果网址包含'#',请求将不会转到服务器。
您能提供有关您所拥有方案的更多详细信息吗?
答案 2 :(得分:0)
您可以使用javascript获取完整链接,然后将其传递给
背后的代码<script language="javascript" type="text/javascript">
function JavaScriptFunction() {
document.getElementById('<%= hdnResultValue.ClientID %>').value = document.URL;
}
</script>
<asp:HiddenField ID="hdnResultValue" Value="0" runat="server" />
<asp:Button ID="Button_Get" runat="server" Text="run" OnClick="Button_Get_Click" OnClientClick="JavaScriptFunction();" />
然后从后面的代码中获取包含当前完整URL
的hiddenfield的值 protected void Button_Get_Click(object sender, EventArgs e)
{
string fullURL = hdnResultValue.Value;
}