我在别人的asp.net网站上看不到__VIEWSTATE的一段代码,自己做的为什么就有。
发布网友
发布时间:2022-05-19 14:55
我来回答
共4个回答
懂视网
时间:2022-05-19 19:17
代码如下:
System.IO.StringWriter html = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter tw = new System.Web.UI.HtmlTextWriter(html);
base.Render(tw);
string Temp = html.ToString();
string s1 = string.Empty, s2 = string.Empty, s3 = string.Empty, s4 = string.Empty, s5 = string.Empty, s6 = string.Empty;
int i = 0;
int j = 0;
i = Temp.IndexOf("<form");
if (i > 0)
{
j = Temp.IndexOf(">", i);
s1 = Temp.Substring(0, i);
s2 = Temp.Substring(j + 1, Temp.Length - j - 1);
}
i = s2.IndexOf("<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE"");
if (i > 0)
{
j = s2.IndexOf(">", i);
s3 = s2.Substring(0, i);
s4 = s2.Substring(j + 1, s2.Length - j - 1);
}
i = s4.IndexOf("<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION"");
if (i > 0)
{
j = s4.IndexOf(">", i);
s5 = s4.Substring(0, i);
s6 = s4.Substring(j + 1, s4.Length - j - 1);
Temp = s1 + s3 + s5 + s6;
}
else
{
Temp = s1 + s3 + s4;
}
Temp = Temp.Replace("</form>", "");
Temp = Temp.Replace("
", "");
tw.Close();
Response.Write(Temp);
热心网友
时间:2022-05-19 16:25
1。可能人家这个页面里面没有启用__VIEWSTATE
2。也可能人家是。net MVC 架构制作的网战了,当然是没有__VIEWSTATE的
3。也可能人家吧__VIEWSTATE移到页面的底部等地方你没注意到
热心网友
时间:2022-05-19 17:43
一个是可能关闭了viewstate,不过即使关闭了也有controlstate,也会出现__viewstate字段
另一个就是改变了page的statepersister,比如用了sessionpersister,这样他就会把viewstate序列化到session里面,你当然看不见了
热心网友
时间:2022-05-19 19:17
在aspx页面的page 命令中加入 EnableViewState="false"
就可以了