我认为如果没有重定向,您无法更改服务器上的QueryString。
但是这段代码对我有效:
我很惊讶。
以下是我对此的疑问:
*更多详情:
我有一个页面,其中的项目已分组到标签中。每个选项卡都是一个asp:LinkButton
我希望能够直接链接到特定标签。我使用QueryString参数'tab = tabName'来做到这一点。有用。但是当我单击一个新选项卡时,查询字符串仍然在Url中,因此Querystring中指定的选项卡被激活,而不是我点击的选项卡。
使用Request.QueryString edit这不会发生。然后我的解决方案“有效”。
提前致谢。
答案 0 :(得分:10)
QueryString属性是只读的,因为它不能在单个请求上更改。显然,浏览器只发送一个只有一个字符串的请求,因此只创建一个集合。黑客使用反射(即操纵代码和内存)来改变你无法正常改变的东西。这个hack打破了QueryString属性的封装和设计。你不应该使用它。从设计的角度来看,没有任何意义。您的查询不会更改,所以为什么要更改代表它的对象?只有浏览器才能发送新的查询字符串,因此您基本上可以根据自己的代码说明浏览器发送的内容。
如果您希望选项卡使用URL,请使用超链接而不是LinkButton。
答案 1 :(得分:2)
从我记忆中读到,这是所有浏览器都遵守的安全标准。它的主要目的是阻止网络钓鱼攻击,有人可以访问网站www.MyLameWarcraftPhishingSite.com“当有人点击页面时,重写网址看起来像www.blizzard.com。获取该网址的唯一方法是实际上是重定向到它。
mmm,最后一篇文章是在2月11日 - 希望可以在此发帖。