如何使用空参数处理ScriptManager AddHistoryPoint?

时间:2012-11-19 13:49:18

标签: c# asp.net browser-history scriptmanager

我有一个将EnableHistory设置为“True”的ScriptManager。我使用AddHistoryPoint方法为页面上的某些过滤器保存过滤器术语。

例如:

this.ScriptManager.AddHistoryPoint("filterterm", "somevalue");

因此浏览器中的地址栏显示类似

的内容
.../mypage.aspx?id=1#&&filterterm=somevalue

它完美无缺,除非我删除所有过滤器,因此我需要保存没有键的历史记录点(换句话说,使用string.Empty键)

发生这种情况时,浏览器中的地址栏会显示:

.../mypage.aspx?id=1#

注意空锚。它使页面的滚动位置重置为顶部。这非常烦人。

你知道解决这个问题的方法吗?

1 个答案:

答案 0 :(得分:0)

目前我使用的不是最好的解决方案,但至少它可行。我添加了一个虚拟参数,在添加过滤条件时添加该参数。当删除所有过滤条件时,虚拟参数将保留在URL中,因此滚动位置不会被重置。

this.ScriptManager.AddHistoryPoint("filter", "1");

注意:解析参数时,应忽略哑参数。