关于ASP.NET2.0下禁用ViewState

tuoshi 2009-07-09 02:24:06
在web.config里设置了<pages enableSessionState="true" enableViewState="false" enableViewStateMac="false"/>

但页面里__VIEWSTATE和__EVENTVALIDATION两个隐含值还是有。
...全文
306 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jock.Chen 2009-07-09
  • 打赏
  • 举报
回复
参考资料

Asp.net--ViewState机制由浅入深1
http://www.cnblogs.com/star65225692/archive/2008/04/05/1138331.html

将ViewState持久化保持在服务器端
http://topic.csdn.net/u/20080530/22/ef0d36a4-6bd4-4eba-9743-b56f080b2161.html

去掉.net页面中的<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE"[
http://topic.csdn.net/u/20080918/15/9af44a56-f77e-49c6-bc39-0ad44ad17c5c.html
Jock.Chen 2009-07-09
  • 打赏
  • 举报
回复
用Reflector看下Page类的方法Page.BeginFormRender,Page.RenderViewStateFields将ClientState属性中的值写入到HTML页面的_VIEWSTATE中。即使ClientState为Null也会将_VIEWSTATE写出来.


internal void RenderViewStateFields(HtmlTextWriter writer)
{
if (this.ClientState != null)
{
ICollection is2 = this.DecomposeViewStateIntoChunks();
writer.WriteLine();
if (is2.Count > 1)
{
writer.Write("<input type=\"hidden\" name=\"");
writer.Write("__VIEWSTATEFIELDCOUNT");
writer.Write("\" id=\"");
writer.Write("__VIEWSTATEFIELDCOUNT");
writer.Write("\" value=\"");
writer.Write(is2.Count.ToString(CultureInfo.InvariantCulture));
writer.WriteLine("\" />");
}
int num = 0;
foreach (string str in is2)
{
writer.Write("<input type=\"hidden\" name=\"");
writer.Write("__VIEWSTATE");
string str2 = null;
if (num > 0)
{
str2 = num.ToString(CultureInfo.InvariantCulture);
writer.Write(str2);
}
writer.Write("\" id=\"");
writer.Write("__VIEWSTATE");
if (num > 0)
{
writer.Write(str2);
}
writer.Write("\" value=\"");
writer.Write(str);
writer.WriteLine("\" />");
num++;
}
}
else
{
writer.Write("\r\n<input type=\"hidden\" name=\"");
writer.Write("__VIEWSTATE");
writer.WriteLine("\" id=\"");
writer.Write("__VIEWSTATE");
writer.WriteLine("\" value=\"\" />");
}
}

xingzhiasa 2009-07-09
  • 打赏
  • 举报
回复
这两个似乎无法除去……除非你整个页面一点服务器控件都不用……可能就不会有了……
lw065 2009-07-09
  • 打赏
  • 举报
回复
总会有那么一点的,不过不会很大
tuoshi 2009-07-09
  • 打赏
  • 举报
回复
顶上去~~

62,052

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧