在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
ASP.NET -- WebForm -- ViewState 1. ViewState的作用 当 ASP .NET 中的表单被提交时,表单会随所有表单值一同重新出现。这是由于 ASP .NET 维持了您的 ViewState。 ViewState 会在页面被提交到服务器时指示其状态。通过在每张页面中的一个 <form runat="server"> 控件中放置一个隐藏域,我们就可以定义页面的状态了。 新建一个Test.aspx: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Test.aspx.cs" Inherits="Test" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>my Test Aspx</title> </head> <body> <form id="form1" runat="server"> <div> <asp:Button ID="Button1" runat="server" Text="Button" /> </div> </form> </body> </html>
在浏览器--开发者工具可看到ViewState隐藏域的存在:
2. ViewState的开启和关闭 维持 ViewState 是 ASP.NET Web 表单的默认设置。 如果您不希望维持 ViewState,请在 .aspx 页面的顶部包含指令: <%@ Page EnableViewState="false" %>,或为任意控件添加属性:EnableViewState="false"。 整个页面关闭ViewState: 单个控件关闭ViewState:
把EnableViewState="false",在浏览器--开发者工具,还是可以看见隐藏域__ViewState的。 如果想彻底去掉隐藏域__ViewState,必须将runat="server"去掉,换成action (但是这样做,会导致工具箱的控件不能用), 如下图: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Test.aspx.cs" Inherits="Test" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>my Test Aspx</title> </head> <body> <form action="Test.aspx" method="post"> <div> <input type="text" name="txtName"/> </div> </form> </body> </html> 浏览器开发者工具中可清楚看见,隐藏域__ViewState被去掉了
|
请发表评论