.NET Framework 4.0 以前,在控件的层级结构中,只要其祖先中有一个 EnableViewState 为 false,当前级不管怎么设置,结果都是 false。请参见:EnableViewState 覆盖原则、在哪里更改 EnableViewState 的值?很不方便。
在 .NET Framework 4.0 中就没问题了,用 ViewStateMode。
但是上面的前提是 EnableViewState 得为 true,否则 ViewStateMode 为 Enabled 也没用。简单地说,不要使用 EnableViewState,而使用 ViewStateMode。