为什么 Button 在这种情况下验证 TextBoxes?

Why is the Button in this case validating the TextBoxes?

看起来很简单,但越来越令人沮丧。我正在使用 ASP.NET WebForm,其中我有以下用于 ButtonClear 的代码,用于清除在 TextBoxes 中输入的文本:

protected void ButtonClearAll_Click(object sender, EventArgs e)
{
    TextBox1.Text = string.Empty;
    TextBox2.Text = string.Empty;
    TextBox3.Text = string.Empty;
    TextBox4.Text = string.Empty;
}

.aspx 文件中的代码:

<asp:Button ID="ButtonClearAll" runat="server" Text="Clear" OnClick="ButtonClearAll_Click"/>

问题: 点击ButtonClearAll 一次,四个TextBoxes 可以正常清除。但是在随后的点击中,4 个 TextBoxes 中的 RequiredFieldValidators 被调用并验证分配的 TextBoxes 以在每个 TextBox.[=21 旁边打印适当的错误语句=]

怎么办?

默认情况下,调用任何 post-back 的任何按钮都会首先调用验证。您可以使用 the CausesValidation property:

禁用特定按钮的验证
<asp:Button ID="ButtonClearAll" CausesValidation="false" ... />