private void Button1_Click(object sender, System.EventArgs e)
{
if(this.Page.IsValid)
{
this.Label1.Text = "ok";
}
else
{
this.Label1.Text = "error";
}
}在页面上添加了验证控件,上面的代码写在一个按钮的单击时间里面,可是无论如何else的部分都不能执行,这是为什么啊? 我看好多书上都用这段代码介绍Page.IsValid。可else部分似乎从来没有执行过,哪个高手知道究竟是咋回事?

解决方案 »

  1.   

    是因为你在客户端都验证通过了。禁止客户端验证即可
    <%@ Page Language="C#" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server">  protected void Button1_Click( object sender, EventArgs e )
      {
        Response.Write(Page.IsValid);
      }
    </script><html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>无标题页</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
          <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
          <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
          <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="必须填写 " ControlToValidate="TextBox1" EnableClientScript="False"></asp:RequiredFieldValidator>
        
        </div>
        </form>
    </body>
    </html>
      

  2.   

    哎,EnableClientScript="False"这个属性忘掉了,2年没有写Asp.net程序了。csdn真好