gpt4 book ai didi

c# - ScriptManager 控件保留历史哈希

转载 作者:太空宇宙 更新时间:2023-11-03 14:21:24 24 4
gpt4 key购买 nike

我正在使用 ScriptManager 控件从服务器 Web 服务加载搜索结果。页面上有一个文本框和按钮,用户可以在其中输入搜索词。当他们提交搜索时,会调用搜索页面的 Response.Redirect。我使用 ScriptManager 的历史功能来跟踪用户可以执行的过滤。如果您熟悉此功能,则 URL 最终看起来像这样:

http://somesite/search.aspx?q=giant+dog#color=red&hair=long

我的问题是,如果用户打算使用 search.aspx 页面上的文本框和按钮进行另一次搜索,这会导致 response.redirect,查询字符串会发生变化,但哈希历史记录仍保留在 URL 的一部分。这对我来说没有意义,因为根据我对 Response.Redirect("someURL") 的理解,它应该像将您发送到新页面一样,无论它是否转到同一页面它离开了。

我知道我可以设置 window.location.hash = "#" 但我希望有比服务器端更简洁的方法。

求助! :-)

最佳答案

这是一篇旧帖子,但我想我会添加解决方案,以防其他人正在寻找它。我遇到了同样的问题,当调用 Response.Redirect() 时,历史点在回发到服务器的过程中得到维护。我不确定为什么会这样,这对我来说似乎违反直觉。但我相信 ScriptManager 正在做一些事情来延续历史点。

答案是将发出 Response.Redirect() 调用的控件放在 UpdatePanel 中。所以,在我的例子中,我有一个按钮,它有一个事件处理程序,在该事件处理程序中发出了重定向。如果没有 UpdatePanel,历史点将被保留。使用 UpdatePanel 包装按钮,一切都按预期工作。

关于c# - ScriptManager 控件保留历史哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5315966/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com