昨天我读了一篇关于 ASP.NET 中 ViewState的非常好的文章。
目前我们正在使用WebFormsMVP在我们的项目中提供更好的可测试性。该框架在 OnInitComplete 中进行演示者绑定,并且严重依赖 DataBind 表达式,例如
<asp:Label Text="<%#Model.FirstName%>" runat="server" />
正如我在上面的文章中所理解的那样,这会将 Model.FirstName 放入 ViewState。因为当视图状态跟踪已启用时,数据绑定发生在页面生命周期的后期。
一种选择是完全禁用 ViewState。还有其他的吗?请记住,我们不能使用 OnInit 或 OnInitComplete,因为 OnLoad 是演示者可以处理的第一个事件。
还要记住,我以标签为例。我正在寻找一种也适用于复杂控件的解决方案。
谢谢。