【发布时间】:2008-11-12 04:52:58
【问题描述】:
我看到 __VIEWSTATE 字段被渲染,即使我在页面级别设置了 EnableViewState="false"。如果我删除表单元素的 runat="server" 标记,则不会呈现此字段。有人可以解释一下吗?
【问题讨论】:
标签: asp.net asp.net-mvc viewstate
我看到 __VIEWSTATE 字段被渲染,即使我在页面级别设置了 EnableViewState="false"。如果我删除表单元素的 runat="server" 标记,则不会呈现此字段。有人可以解释一下吗?
【问题讨论】:
标签: asp.net asp.net-mvc viewstate
__VIEWSTATE 字段也用于存储控制状态,它不是可选的。此外,如果我没记错的话,视图状态中包含的信息用于验证回发(并且验证已启用,这是默认设置)。因此,只要您拥有带有 runat="server" 的表单,您就会拥有一个 viewstate 字段。但是,如果禁用所有视图状态,您应该会注意到字段大小要小得多。
【讨论】:
提示: 在 Asp.net 中,如果您需要完全去除 __VIEWSTATE,请重写 Page.Render 方法,将页面呈现为字符串,并从中去除 __VIEWSTATE 文本。
【讨论】:
<form> 元素中删除 runat="server" 来完成。