ASP.NET 自定义验证器不工作
ASP.NET custom validator is not working
我已经完成了 this page 告诉我要做的所有事情,但它不起作用,我看到有人发帖讨论这个问题并被告知添加必填字段验证器,我已经做到了,仍然无法正常工作。
这是客户端部分
<asp:CustomValidator
ID="CustomValidator1"
runat="server"
ControlToValidate="TextBoxUsername"
ErrorMessage="Username already exists"
OnServerValidate="CustomValidator1_ServerValidate"
ValidateEmptyText="True" <!--tried without this line-->
ValidationGroup="form"> <!--tried without this line-->
</asp:CustomValidator>
这是 C# 服务器端代码
protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args){
args.IsValid = false;
}
看起来很简单,对吧?它应该一直出现,对吧?
嗯,它只出现在开头,然后永远消失,那是因为我在 page_load() 方法中有这一行,但我在 button_click() 方法中也有它。
Page.Validate();
首先,删除验证组,然后添加 Text
:
<asp:CustomValidator
ID="CustomValidator1"
runat="server"
ControlToValidate="TextBoxUsername"
ErrorMessage="Username already exists"
Text="Username already exists"
OnServerValidate="CustomValidator1_ServerValidate"
ValidateEmptyText="True">
</asp:CustomValidator>
ErrorMessage
将显示在 ValidationSummary
控件中,Text
应显示验证器所在的位置。
更新按钮以进行验证(无论如何我相信 true 是默认值,但让我们明确一点):
然后在点击后检查页面是否有效,Page.Validate
不需要调用,因为它会自动用于CauseValidation
。
protected void Button1_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{
// Do Cool Stuff
}
}
此外,检查时在 click 方法上放置一个断点,因为您没有任何客户端连接(例如验证器上的 ClientValidationFunction="somejsfunction"
),因此您只会在通过时点击此代码服务器端验证。
我已经完成了 this page 告诉我要做的所有事情,但它不起作用,我看到有人发帖讨论这个问题并被告知添加必填字段验证器,我已经做到了,仍然无法正常工作。
这是客户端部分
<asp:CustomValidator
ID="CustomValidator1"
runat="server"
ControlToValidate="TextBoxUsername"
ErrorMessage="Username already exists"
OnServerValidate="CustomValidator1_ServerValidate"
ValidateEmptyText="True" <!--tried without this line-->
ValidationGroup="form"> <!--tried without this line-->
</asp:CustomValidator>
这是 C# 服务器端代码
protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args){
args.IsValid = false;
}
看起来很简单,对吧?它应该一直出现,对吧? 嗯,它只出现在开头,然后永远消失,那是因为我在 page_load() 方法中有这一行,但我在 button_click() 方法中也有它。
Page.Validate();
首先,删除验证组,然后添加 Text
:
<asp:CustomValidator
ID="CustomValidator1"
runat="server"
ControlToValidate="TextBoxUsername"
ErrorMessage="Username already exists"
Text="Username already exists"
OnServerValidate="CustomValidator1_ServerValidate"
ValidateEmptyText="True">
</asp:CustomValidator>
ErrorMessage
将显示在 ValidationSummary
控件中,Text
应显示验证器所在的位置。
更新按钮以进行验证(无论如何我相信 true 是默认值,但让我们明确一点):
然后在点击后检查页面是否有效,Page.Validate
不需要调用,因为它会自动用于CauseValidation
。
protected void Button1_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{
// Do Cool Stuff
}
}
此外,检查时在 click 方法上放置一个断点,因为您没有任何客户端连接(例如验证器上的 ClientValidationFunction="somejsfunction"
),因此您只会在通过时点击此代码服务器端验证。