日期:2014-05-18  浏览次数:20421 次

无法禁用ViewState,怎么办?
protected   void   Page_Load(object   sender,   EventArgs   e)
        {
                EnableViewState   =   false;
                ViewState[ "w "]   =   "win ";
        }
        protected   void   Button1_Click(object   sender,   EventArgs   e)
        {
                Response.Write(ViewState[ "w "].ToString());
        }

只要点击button,照样显示win
在web.config: <pages   enableViewState= "false "> </pages>
在页头: <%@   Page   Language= "C# "   AutoEventWireup= "true "     CodeFile= "Default.aspx.cs "   Inherits= "_Default "   EnableViewState= "false "   %>
在控件: <asp:textbox   runat= "server "   ID= "t "   EnableViewState=false>


我都把它们禁用了,可是页面还是会出现
<input   type= "hidden "   name= "__VIEWSTATE "   id= "__VIEWSTATE "   value= "/wEPDwUJMjY4MTkwNDYwZGRoemkSLT6wc8CWyhWrPT57EBoWTg== "   />

类似的东东,这是怎么一回事?

怎么样能才能禁用ViewState


------解决方案--------------------
<input type= "hidden " name= "__VIEWSTATE " id= "__VIEWSTATE " value= "/wEPDwUJMjY4MTkwNDYwZGRoemkSLT6wc8CWyhWrPT57EBoWTg== " />

viewstate本来就是通过一个隐藏的文本框 实现的 我猜禁用后视图状态 它是不保存的 但是这个隐藏文本框似乎去不掉
------解决方案--------------------
就那么一点点 没啥

那个只要加上了带事件的控件或者form都回有的
------解决方案--------------------
基本上只要有runat=server的控件都有,功能越多,占用的viewstate字节越多
------解决方案--------------------
禁用ViewState是指禁用控件使用ViewState保存状态值.而不是程序都不能用ViewState
------解决方案--------------------
我都把它们禁用了,可是页面还是会出现

==========

你自己的测试代码有问题

象你那样的代码,每次请求都是【先】执行 ViewState[ "w "] = "win "; 这句

再 Click 事件里面自然能够访问得到

EnableViewState=false 是说,不将 ViewState 的内容发送到客户端,并表示说 ViewState 不可访问

按这个试试,看看效果

if(!IsPostBack) {
ViewState[ "w "] = "win ";
}