【问题标题】:Detecting page refresh without viewstate检测没有视图状态的页面刷新
【发布时间】:2010-11-12 13:07:15
【问题描述】:

有没有一种方法可以在不使用 asp.net webforms 中的 viewstate 的情况下检测页面刷新?我想知道这是否可能,因为例如 asp.net mvc 不使用视图状态。

我试图避免一起使用视图状态来保持我的页面大小。

【问题讨论】:

  • 你的意思是“F5”的页面刷新?还是您的意思是某个页面上的 HTTP GET 方法?
  • 我的意思是 F5 或用户重新加载页面

标签: asp.net refresh


【解决方案1】:

IsPostBack 不起作用,因为它是 F5 或 Pager 刷新案例,而不是任何事件的回发。

【讨论】:

    【解决方案2】:

    您可以使用IsPostBack 在服务器端检测页面刷新。实际上,您在代码隐藏中放入Page_Load 的任何代码都会在每次刷新页面时运行。还是我误解了你的问题?

    【讨论】:

      【解决方案3】:

      为什么不能在页面中禁用 ViewState 的情况下在后面的代码中使用 IsPostback?这样你就可以在后面的代码中做任何你需要的事情,而不必担心 ViewState 会阻塞你的页面大小。

      您可以通过将 enableViewState 标志添加到 @Page 指令来禁用页面中的 ViewState。

      我能想到的唯一另一件事是有一段 javascript 代码来捕捉 F5 的按键,但显然这只会捕捉 F5 刷新而不是刷新按钮刷新。

      本网站展示了如何使用 Javascript 捕获按键:
      http://www.go4expert.com/forums/showthread.php?t=2733

      【讨论】:

        【解决方案4】:

        http 协议是无状态的,并且在将响应发送给请求集之后,它会删除他的所有跟踪,除了他的会话。 webforms 的工作方式是它序列化您的页面状态并将其发送到客户端,然后在您进行回发(表单发布请求)时将其发送回服务器。因此,您可以在他的会话中保存有关他之前访问过的页面的客户信息,然后在他再次请求同一页面时签入会话。

        【讨论】:

          猜你喜欢
          • 2021-03-20
          • 2020-03-11
          • 2011-05-16
          • 2017-08-19
          • 2018-05-02
          • 2012-01-04
          • 2019-05-19
          • 2015-07-21
          • 1970-01-01
          相关资源
          最近更新 更多