对于asp.net提交后究竟有哪些东西,它是依旧在维护的,我一直很模糊,自己做了一个测试,发现客户端脚本改掉的东西,它都是不维护的,看来,除非是服务器控件,而且是在服务器端变更的东西,它是存储到视图状态进行维护的,其他的,它不管,你一刷新或者一提交,它统统回原样了!
上代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>
<!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 runat="server">
<title></title>
<script type="text/javascript">
function outbtn_click()
{
document.getElementById("outDiv").innerHTML = "我改掉你了!!";
document.getElementById("inDiv").innerHTML = "我改掉你了!!";
document.getElementById("Label1").innerHTML = "我改掉你了!!";
}
</script>
</head>
<body>
<div id="outDiv">我在外面</div>
<input type="button" value="outbn" onclick="outbtn_click()" />
<form id="form1" runat="server">
<div id="inDiv">
haha,我这个div在form里面,测试一下看asp会自动给我维护状态的
</div>
<asp:Label ID="Label1" runat="server" Text="我是服务器端控件,来吧,我不怕!"></asp:Label>
<br />
<asp:Button Text="button" runat="server"/>
</form>
</body>
</html>
按outbn按钮后,通过客户端js,修改需测试的控件内容,如下:
按button按钮,内容全部变回来了,不管是form外也好,form内也好,甚至是服务器控件,由于是客户端改变的内容,没有进入状态视图内,因此提交后无法保存。