请注意交互的值会被保留

作者:vkvi 来源:ITPOW(原创) 日期:2007-6-8

注意,此文适用于没有禁止 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 时,仍是该显示,因为程序并没有要求更改显示,该显示会被保留。

相关阅读

相关文章