注意,此文适用于没有禁止 View State 的情况。
示例
<%@ Page Language="C#" %>
<script runat="server">
void Foo(object sender, EventArgs e)
{
if (tb.Text.Length < 3)
{
lb.Text = "您输入的字符串长度小于 3";
}
else
{
lb.Text = ""; //这句不能省略
}
}
</script>
<!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>ASP.NET</title>
</head>
<body>
<form id="form1" runat="server">
<div>
请输入任意字符串:<asp:TextBox ID="tb" runat="server"></asp:TextBox>
<asp:Button ID="btn" runat="server" Text="然后点击这个按钮" OnClick="Foo" />
</div>
<div><asp:Label ID="lb" runat="server"></asp:Label></div>
</form>
</body>
</html>
我们在输入框中,输入值,点击按钮执行提交后,返回后的页面中输入框中的值仍会存在,而这种特性不是像 ASP 那样由网页程序员指定的。
不仅输入框中的值,选择框、Label 等其值都会被保留。
上述代码的意图是:当输入的字符串长度小于 3 时,显示“您输入的字符串长度小于 3”,如果大于或等于,则不显示内容。
照 ASP 的理念,只需要判断长度是否小于 3,如果小于 3,则显示。
而 ASP.NET 中,除了判断小于 3,还要判断 else,在 else 中指定显示空白内容。
否则,如果第一次输入的字符串长度小于 3,则显示“您输入的字符串长度小于 3”,第二次输入的字符串长度大于等于 3 时,仍是该显示,因为程序并没有要求更改显示,该显示会被保留。
相关阅读