我正在使用ASP.NET Webforms C# 3.5,并利用Response.Redirect在事件调用后重定向页面。如果我提交请求,第一个请求正常工作。我目前正在使用Response.Redirect。我尝试过使用Server.Transfer并将True和False作为第二个参数传递给Redirect函数,以及尝试关闭SmartNavigation。如果我单击提交按钮,则页面会按预期执行,并且锚点会强制将页面定位到正确位置。如果我再次单击提交,则相同的URL被返回,并且浏览器不做任何事情,只是“挂起”。如果我从我的URL中删除散列部分,则重定向正常工作。问题似乎只会在使用锚点(散列符号)将请求重定向到当前URL并发生新的重定向时出现。
Response.Redirect(/Script.aspx?param1=something¶m2=something#anchor);
我还尝试了这个:
Response.Redirect(/Script.aspx?param1=something¶m2=something&#anchor)
;
无论哪种情况,删除锚点都可以解决问题。
这个问题出现在Chrome和Firefox中。Firebug报告请求完成并显示响应字符串,一切看起来都应该有井号,但浏览器却一直挂着。我的意思是,它显示光标作为进度\正在执行某些操作的光标类型。