日期:2014-05-19  浏览次数:20402 次

非常短的几行代码,怎么样设置才能在客户端HTML中不显示“__VIEWSTATE”隐藏域,谢谢!
<%@   Page   Language= "C# "   %>
<!DOCTYPE   html   PUBLIC   "-//W3C//DTD   XHTML   1.0   Transitional//EN "   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html   xmlns= "http://www.w3.org/1999/xhtml "   >
<head>
        <title> 怎么样能不显示“__VIEWSTATE”隐藏域 </title>
</head>
<body>
        <form   id= "form1 "   runat= "server ">
                说明:因为代码需要用的表单中的东西,所以必须有这个表单,因为这个网页想生成静态的HTML页面所以不想要隐藏域。
        </form>
</body>
</html>


------解决方案--------------------
应该不可以吧
------解决方案--------------------
form去掉 runat=server

页面如果有后台代码处理 <%@ Page Language= "C# " AutoEventWireup= "true " CodeFile= "testViewState.aspx.cs " Inherits= "testViewState " EnableViewState= "false "%>

加上 EnableViewState= "false "
------解决方案--------------------
但是如果 form runat=server去掉的话 你不能使用服务器控件了
------解决方案--------------------
加上EnableViewState= "False "即可!!!

<%@ Page ....... EnableViewState= "False " %>
------解决方案--------------------
都让上面的说完了


EnableViewState= "False "
------解决方案--------------------
不能使用任何有服务器控件,然后去掉form的runat= "server " 或 <%@ Page ....... EnableViewState= "False " %>
------解决方案--------------------
不能使用任何有服务器控件
------解决方案--------------------
form因为静态化的原因既然想去掉,那就不要考虑还要运行什么控件~
因为静态化后的页面的提交(form.submit())路径不能是这个页面本身了,而且所有的涉及到生成 <input type=... > html元素的服务器控件都不能加,和所有涉及到页面提交的控件也不能加,原因是ASP.NET的事件机制导致的,否则ViewState就没有任何意义了..
这是ASP.NET的事件机制导致的必然会发生的问题,要解决这些问题,最简单的是采用非事件机制的网页开发语言的模式,如asp和php,提交到与当前页面无关的一个专门处理提交的页面上去才是应该的做法。


------解决方案--------------------
且要去掉form的runat= "server "属性。
------解决方案--------------------
说了啊去掉runat= "server "
<form id= "form1 ">
说明:因为代码需要用的表单中的东西,所以必须有这个表单,因为这个网页想生成静态的HTML页面所以不想要隐藏域。
</form>

------解决方案--------------------
设置page 的EnableViewState= "false "