3

昨天我读了一篇关于 ASP.NET 中 ViewState的非常好的文章。

目前我们正在使用WebFormsMVP在我们的项目中提供更好的可测试性。该框架在 OnInitComplete 中进行演示者绑定,并且严重依赖 DataBind 表达式,例如

<asp:Label Text="<%#Model.FirstName%>" runat="server" /> 

正如我在上面的文章中所理解的那样,这会将 Model.FirstName 放入 ViewState。因为当视图状态跟踪已启用时,数据绑定发生在页面生命周期的后期。

一种选择是完全禁用 ViewState。还有其他的吗?请记住,我们不能使用 OnInit 或 OnInitComplete,因为 OnLoad 是演示者可以处理的第一个事件。

还要记住,我以标签为例。我正在寻找一种也适用于复杂控件的解决方案。

谢谢。

4

1 回答 1

2

重新阅读您的问题和链接的文章后,我认为最好的解决方案是按照文章的建议创建您自己的一组自定义控件。这样您就可以在控件生命周期的早期获取您的值并减少视图状态的注入。

非常好的文章,给了我们一些思考,感谢发布。

于 2010-10-24T03:20:58.177 回答