C#CustomValidator未显示错误,但args.Isvalid=false

C#CustomValidator未显示错误,但args.Isvalid=false,c#,C#,我正在尝试在文本框上创建自定义CustomValidator,以便长度不能为0。只是它没有显示错误消息。但继续点击按钮事件 这是我正在使用的代码 <asp:TextBox ID="proj_title" runat="server"></asp:TextBox> <asp:CustomValidator ID="CustomValidatorproj_title" runat="server" ErrorMessage="CustomValidator" Displ

我正在尝试在文本框上创建自定义CustomValidator,以便长度不能为0。只是它没有显示错误消息。但继续点击按钮事件

这是我正在使用的代码

<asp:TextBox ID="proj_title" runat="server"></asp:TextBox>
<asp:CustomValidator ID="CustomValidatorproj_title" runat="server" ErrorMessage="CustomValidator" Display="Dynamic" OnServerValidate="CustomValidatorproj_title_OnServerValidate" ShowSummary="true"></asp:CustomValidator>

您应该在自定义验证器中提供ControlToValidate=“proj_Title”属性,以确保已将ValidateEmptyText设置为True

所以我找到了问题所在。 自定义验证器始终继续使用按钮单击方法,即使验证器说“false”,为了捕获IsValid,需要在单击方法中使用
if(Page.IsValid){}

例如:

 protected void button_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
               //code here if the page is valid
            }
        }

在此之后,如果页面无效并显示消息,则会触发自定义验证程序。

侧注:您可以使用
args.IsValid=proj_title.Text.Length>0替换if/else块。
您希望在客户端或服务器端进行验证吗?这是CustomValidator现在:

 protected void button_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
               //code here if the page is valid
            }
        }