C# 获取并使用url哈希进行服务器端显示
我试图从客户端的url中获取散列值,然后使用该值确定菜单的显示方式。这意味着我需要做两件事:C# 获取并使用url哈希进行服务器端显示,c#,jquery,asp.net,hash,C#,Jquery,Asp.net,Hash,我试图从客户端的url中获取散列值,然后使用该值确定菜单的显示方式。这意味着我需要做两件事: 获取哈希值 设置正确的时间,这样我就可以尽早访问哈希值,从而更改菜单 对于1,我尝试使用jQuery获取散列并将其存储在我在本网站上看到的一个示例的隐藏输入中。我可以通过Firebug确认这是否正常工作 <input id="urlhash" type="hidden" runat="server" /> <script type="text/javascript">
<input id="urlhash" type="hidden" runat="server" />
<script type="text/javascript">
$(document).ready(function(){
var hiddenUrlHash = document.getElementById("<%:urlhash.ClientID%>");
hiddenUrlHash.value = window.location.hash;
});
</script>
我假设这是一个计时问题,当我到达OnPreRender事件时,客户端还没有返回哈希值。有没有办法更快地获取散列值,这样我就可以在OnPreRender中或更早地访问它
提前谢谢 使用
.ready()
意味着在DOM处于就绪状态之前,JQuery不会执行。这通常是在页面完成时。这也意味着此时您的.NET已经将所有HTML发送到客户端。除此之外,您可能希望将此标记为c
或.net
,以获取他们的反馈,如果您需要的话。我在PHP中做了更多的工作,因此我只需在PHP中直接从URL获取哈希值:$\u get['hash'
可以尝试Request.QueryString[“hash”]
或Request[“hash”]
立即获取它,并在向客户端演示之前使用它。存在语法问题:应该是。此外,应该在Page_Load而不是OnPreRender上截取该值,因为在OnPreRender期间未设置控件的值@Dinmyte:我已经使用:urlhash正确地获取了哈希值。但是,我确实尝试了您的两个建议(使用=urlhash并移动TextBoxTest.Text=urlhash.Value),但我的Textbox仍然是空的。谢谢你的建议。@Twisty:我在这个问题上加了C标记;谢谢你的建议。不幸的是,Request.QueryString[“hash”]和Request[“hash”]都返回null。
protected override void OnPreRender(EventArgs e)
{
TextBoxTest.Text = urlhash.Value;
}