【问题标题】:Server.Transfer Vs refresh of the browserServer.Transfer 与浏览器的刷新
【发布时间】:2011-08-30 06:25:14
【问题描述】:

我在asp.net中创建了两个表单,分别是test1.aspx和test2.aspx。 test1 页面包含一个提交按钮。如果用户点击这个,我会使用 server.transfer 方法转移到 test2 页面。在这种情况下,浏览器会显示 test2 页面内容,但浏览器的地址栏会显示 test1 页面位置。当用户点击浏览器的刷新按钮或F5时,test1页面工作,提交按钮工作。我不想做这个。我想刷新 test2 页面。我怎么能那样做?我不想使用 response.redirect。

【问题讨论】:

  • 为什么不想使用 Response.Redirect?
  • 因为性能问题。
  • @zanhtet:您在使用 Response.Redirect 时遇到什么性能问题?
  • 是的。我知道 server.transfer 方法比 response.redirect 更好。
  • @zanthet:server.transfer 比 response.redirect“更好”。这只是另一种方法。 Server.Transfer 实际上会从 page1 重定向到 page2 而不会让浏览器知道它会这样做,而 Response.Redirect 会做同样的事情,但它会让浏览器知道(通过 HTTP 标头)路径将通向何处。实际上浏览器本身会进行重定向。因此,这似乎是您真正想要的。

标签: asp.net vb.net server.transfer


【解决方案1】:

改用 Response.Redirect。这实际上将重定向到 test2.aspx,因此刷新将刷新 test2.aspx。

【讨论】:

  • 对不起,我忘了我不想使用 response.redirect。
  • 哦,我明白了。如果您使用 server.transfer 方法在 url 中传递一个参数,然后如果用户刷新,您可以检查该参数并执行必要的逻辑???
【解决方案2】:

您将需要缓存您上次查看的页面 (Session = Page2),因此当 Page1 重新加载时,它可以查看缓存,确定它在错误的位置,然后再次进行 server.transfer。

但是可能值得重新考虑此页面的工作方式,您是否考虑过使用单个页面并将页面状态存储在隐藏字段中

【讨论】:

    猜你喜欢
    • 2014-08-10
    • 1970-01-01
    • 2015-02-18
    • 2010-09-08
    • 2011-09-30
    • 1970-01-01
    • 2019-03-04
    • 2015-01-28
    • 2018-10-16
    相关资源
    最近更新 更多