无法禁用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 ";
}