如何使用Server.Transfer("default.aspx")来更好地在网站内导航。当我使用它时,它不会更改地址栏中的url。如何通过server.transfer实现新的url。或(如果不是)如何使用Response.Redirect("default.aspx")获得性能。
发布于 2012-11-20 13:59:01
你需要理解Response.Redirect("page.aspx")和Server.Transfer("page.aspx")之间的区别
Server.Transfer:
Server.Transfer语句中更改。Request.Form["myTextBox"]访问它们。Response.Redirect更快。使用您的最佳判断,何时使用Response.Redirect和何时使用Server.Transfer。如果您想将表单控件的数据从一个页面发送到另一个页面,我只建议使用“Server.Transfer”,否则会给您带来调试噩梦。
发布于 2013-02-13 11:22:34
我不太喜欢这种方法,但是如果您坚持使用Server.Transfer,那么您可以在响应到达浏览器并在浏览器上进行处理之后,使用HTML5 History API来更改浏览器地址栏中的URL。请注意,只有较新的浏览器支持此功能,但随着时间的推移,这将不再是一个问题。
您将需要页面中的一部分JavaScript来操作历史记录的当前状态。这看起来应该是:
<script type="text/javascript">
window.history.pushState({ path: <pageurl> }, '', <pageurl>);
</script><pageurl>占位符必须在服务器上设置为您在Server.Transfer调用中实际处理的页面的真实URL。
到目前为止,已经有很多关于如何在网络上使用html5历史api的例子,例如http://html5demos.com/history。
https://stackoverflow.com/questions/13474220
复制相似问题