读书人

无法禁用ViewState,怎么处理

发布时间: 2012-03-07 09:13:51 作者: rapoo

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

读书人网 >asp.net

热点推荐