【问题标题】:What are the possibly situations that .net Viewstate could stop working?.net Viewstate 可能会停止工作的可能情况有哪些?
【发布时间】:2009-01-09 17:03:29
【问题描述】:

考虑以下代码:

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
        If Page.IsPostBack Then
            If ViewState("test") IsNot Nothing Then
                Response.Write((ViewState("test").ToString))
            Else 
                Response.Write("Viewstate is empty.")
            End If
        Else
            ViewState("test") = "viewstate is working."
        End If
    End Sub

此代码不适用于我的应用程序中的特定页面。在 Page 指令中没有关闭 Viewstate。我不知道发生了什么事。 :\

哦,我刚刚想通了。看看你有没有注意到。

.

【问题讨论】:

  • 我认为不工作是指点击:Response.Write("Viewstate is empty.")?
  • ViewState 隐藏字段是否在第一次 GET 时写入客户端?
  • 准备删除这个尴尬的问题
  • 请回复您自己的帖子,而不是编辑您的帖子,并将您的回复标记为答案。 :) 我只是回复了,没想到你自己回答了:)
  • 不,这对别人来说不是一个很好的参考!

标签: asp.net vb.net viewstate


【解决方案1】:

想通了,有人更改了 Page_Load 事件来处理 Page.Init

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init

【讨论】:

    【解决方案2】:

    您也可以从配置文件中关闭视图状态。

    <configuration>
      <appSettings>
        <Pages EnableViewState="false" />
      </appSettings>
    </configuration>
    

    【讨论】:

    • 我投了赞成票,但这不是 viewstate 标签实际上在页面上呈现的问题。我觉得我在这里疯了。
    【解决方案3】:

    您确定要回发吗?

    它会写“Viewstate 为空”吗?还是什么都没有?

    【讨论】:

      【解决方案4】:

      由于您没有回答自己的帖子...

      我会说您正在检查 IsPostBack 并在错误的阶段访问 ViewState:

      Handles Me.Init
      

      应该是这样的

      Handles Me.Load
      

      对吗?


      对于在 ASP.NET 中调试这些令人头疼的问题,我还想补充一点,跟踪通常会很有帮助。

      您可以通过将其添加到 web.config 来启用跟踪:

      <configuration>
        <system.web>
          <trace enabled="true" pageOutput="true" requestLimit="40" localOnly="false"/>
        </system.web>
      </configuration>
      

      这会将堆栈跟踪等附加到每个页面的末尾,因此您可以跟踪执行并(希望)找出问题。

      【讨论】:

        【解决方案5】:

        在我的例子中,我正在将数据写入 Page_Init 上的 ViewState。此数据在 Page_Load 和 Page_PreRender 上显示良好,但在生命周期结束时并未持久保存到页面。回发后 ViewState 为空。

        因此,请确保在 Page_Init 之后写入 ViewState。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-10-25
          • 2021-05-22
          • 2014-03-17
          • 1970-01-01
          相关资源
          最近更新 更多