Bak*_*shi 5 .net c# asp.net viewstate
有谁知道控件的 CommandName 和 CommandArgument 属性存储在哪里?我对检索它们不感兴趣,只是想了解更多关于 ASP.NET 内部结构和未来页面大小的考虑。:)
我创建了一个包含 3 个按钮的简单页面,它们的 commandArg 和 CommandName 设置如下:
<asp:Button Text="Click1" runat="server" CommandArgument="1" CommandName="Delete" OnCommand="CommandExec" />
<asp:Button Text="Click2" runat="server" CommandArgument="2" CommandName="Save" OnCommand="CommandExec" />
<asp:Button Text="Click3" runat="server" CommandArgument="3" CommandName="Copy" OnCommand="CommandExec" />
Run Code Online (Sandbox Code Playgroud)
将 CommandArgument 或 CommandName 更改为相当大的值不会影响 ViewState 内容和大小,那么这些值存储在哪里?
谢谢
如果您想了解 ASP.NET 内部原理,我仍然认为最好的书是Nikhil Kothari 和 Vandana Datye 编写的《开发 ASP.NET 服务器控件和组件》。它是为 .NET 1.x 编写的,因此有点过时,但仍然很好地涵盖了基本架构。
在您的示例中,ViewState 大小不受影响的原因是在处理标记的 Init 阶段期间未跟踪 ViewState。标记中设置为固定值的属性值将硬连线到编译 ASP.NET 页面时生成的代码中。
这篇 MSDN 文章很好地概述了 ViewState。
如果将按钮放入数据绑定控件(例如转发器或 GridView)中,并使用数据绑定语法为每行的 CommandArgument 指定不同的值,您将看到 ViewState 不断增长。
| 归档时间: |
|
| 查看次数: |
8399 次 |
| 最近记录: |