【问题标题】:ViewStateMode property in Asp.Net 4.0Asp.Net 4.0 中的 ViewStateMode 属性
【发布时间】:2011-02-11 15:29:57
【问题描述】:

我还没有开始学习 Asp.Net 4.0,但我确实读过一点关于 ViewState,其中有一个新属性 ViewStateMode。在早期版本的 Asp.Net 中,如果父控件的 ViewState 被禁用,那么子控件的 ViewState 也会被禁用,即使它们的 EnableViewState 设置为 true。

a) 因此,如果我理解正确,那么 ViewStateMode 属性设置为“启用”的子控件 C 会导致 C 保存其视图状态,即使父控件的视图状态已禁用?

b) ViewStateMode 属性没有/不能在早期版本的 Asp.Net 中实现的原因是什么?

感谢

【问题讨论】:

    标签: .net asp.net viewstate


    【解决方案1】:

    a) 正确。

    b) 本来可以,但事实并非如此。如果不破坏现有代码,则无法更改 EnableViewState。

    【讨论】:

    • 那么在 Asp.Net 4.0 中 EnableViewState 属性是否已过时或省略?
    • 呃,新代码中省略了是什么意思?所以 Asp.Net 4.0 仍然会以某种方式允许旧应用程序使用 EnableViewstate 属性,但它不允许新应用程序使用它?这怎么可能?
    • 我的意思是你不应该将它用于新页面。同时,您不必更改现有页面,它可以像以前一样工作。
    • 所以 Page.EnableViewState = false + Page.ViewStateMode = Disabled + MyControl.EnableViewState = true + MyControl.ViewStateMode = Enabled = MyControl 有视图状态?
    • (我不清楚将 Page.EnableViewStateMode 设置为 false 不会总是覆盖控件的设置。)
    【解决方案2】:

    EnableViewState 允许保存视图状态。 ViewStateMode 设置是否使用它。 默认情况下,每个控件的 ViewStateMode 都设置为 Inherit。

    A) 绝对的。

    B) 在预览版本中如果父视图状态被禁用,子视图状态也会被禁用。许多用户要求新的 ViewStateMode 用于可以覆盖父 ViewStateMode 的子控件。所以在这里你有它。 1920 年代除了黑白电视以外没有彩色电视有什么原因吗?

    【讨论】:

      猜你喜欢
      • 2011-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多