我知道这是一个微不足道的问题,但无论如何我想知道它是否可以解决。
我有一个带有嵌套母版页和 JavaScript 的 ASP.NET 网页表单页面。我广泛使用 jQuery 和 Ajax 调用。加载页面后,与服务器的所有通信都通过 Ajax 调用完成,因此我不需要启用 ViewState,这会导致 HTML 输出代码减少。
我现在必须实现一个用户可以上传文件的页面。所以我使用了AjaxToolkitFileUpload的AsyncFileUpload控件。上传文件后,我对服务器进行 Ajax 调用以请求文件名。
一切正常,但我注意到 FireBug 在 OnClientUploadStarted 和 OnClientUploadComplete 事件之间的每个文件上传发现 10 个错误。该文件已正确上传,并且客户端的事件也可以正常工作。但我不能忽视抛出错误的事实,所以我去寻找问题所在。
我一块一块地重建页面,我发现这个控件需要启用 Viewstate。然而,在 page 指令中使用viewstate=disabled文件大小为 76.6kb,使用viewstate=enabled文件大小为 99.2kb。
同样,我知道这很简单,不会影响网站的性能,但很高兴知道。
- 为什么这个控件需要视图状态?(我想是因为它实际上将文件发布到 iFrame 或类似的东西?)
- 我怎样才能减少视图状态并让这个控件仍然正常工作?