当前位置: 代码迷 >> ASP.NET >> 怎么去掉ViewState产生的<input type="hidden"
  详细解决方案

怎么去掉ViewState产生的<input type="hidden"

热度:9063   发布时间:2013-02-26 00:00:00.0
如何去掉ViewState产生的<input type="hidden"
页面查看源文件夹时,
发现 <input   type= "hidden "..这样的一段字符窜长度有好几K,
怎么去掉呢,
不可以用enableViewState=false,
因为代码里用到了ViewState;
而且这样只能减少,不能完全去掉,
我看CSDN页面源文件里就没有这 <input   type= "hidden "
在查了之前相关的贴,回的都不能实现.
请大家指教一下

------解决方案--------------------------------------------------------
因为代码里用到了ViewState;
而且这样只能减少,不能完全去掉
既然你用到了ViewState;为什么还要完全去掉?去掉了你还这么用?矛盾
------解决方案--------------------------------------------------------
<form runat=server>
改成
<form>
即可完全去掉
例如

<%@ Page Language= "C# " %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN " "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">

<script runat= "server ">
public override void VerifyRenderingInServerForm(Control control)
{
}
</script>

<html xmlns= "http://www.w3.org/1999/xhtml " >
<head runat= "server ">
<title> 无标题页 </title>
</head>
<body>
<form id= "form1 ">
<div>
<asp:TextBox ID= "TextBox1 " runat= "server "> </asp:TextBox>
<asp:TextBox ID= "TextBox2 " runat= "server "> </asp:TextBox> </div>
</form>
</body>
</html>

也可以在页面的Render方法里去除。

------解决方案--------------------------------------------------------
ViewState是asp.net保持页面的状态重要方法,去掉了就不能利用asp.net的某些功能了
------解决方案--------------------------------------------------------
要不就不要用ViewState,要用的话它产生的hidden是必需的!
------解决方案--------------------------------------------------------
Viewstate保存的东西,在客户段就是hidden。
------解决方案--------------------------------------------------------
mark
------解决方案--------------------------------------------------------
那些又不是垃圾代码,为什么要去掉?

如果去掉了hidden,就不能保存很多服务器控件在客户端的状态信息


------解决方案--------------------------------------------------------
而且这样只能减少,不能完全去掉
===========
同意孟子老大。
------解决方案--------------------------------------------------------
ViewState本来就是.net 封闭的hidden
------解决方案--------------------------------------------------------
去掉了,你还怎么保存
------解决方案--------------------------------------------------------
用了viewstate就不可能完全去掉
除非你不用.然后页面级的去除
------解决方案--------------------------------------------------------
将所有控件的viewstate设为false

然后页面模型将被为全事件驱动的,
你必须要为每一个控件添加该事件发生后所呈现的状态,包括你认为与此次事件不相干的控件
------解决方案--------------------------------------------------------
热烈祝贺ASP.NET群7947148成立了。
------解决方案--------------------------------------------------------
我去面试,然后公司面试我的人说他们公司网站里不允许出现这 <input type= "hidden "...
我看了CSDN上面也没有..
就算我代码里面没有用到viewstate
一样会产生 <input type= "hidden "...
CSDN是怎么样实现的呢...

-----------
csdn是很多页面都是asp和xslt+xml页面,而不是aspx
------解决方案--------------------------------------------------------
CSDN不是完全的.NET网站...

从它采用的技术就知道了,早期的时髦技术----用ASP生成静态网页
------解决方案--------------------------------------------------------
ViewState 本来就是基于它的啊。你去了的话。ViewState也就失效了
  相关解决方案