Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取并使用url哈希进行服务器端显示_C#_Jquery_Asp.net_Hash - Fatal编程技术网

C# 获取并使用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">

我试图从客户端的url中获取散列值,然后使用该值确定菜单的显示方式。这意味着我需要做两件事:

  • 获取哈希值
  • 设置正确的时间,这样我就可以尽早访问哈希值,从而更改菜单
  • 对于1,我尝试使用jQuery获取散列并将其存储在我在本网站上看到的一个示例的隐藏输入中。我可以通过Firebug确认这是否正常工作

    <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;
    }