【问题标题】:How to bypass validation for a button in ASP.NET?如何绕过 ASP.NET 中按钮的验证?
【发布时间】:2011-09-17 06:45:07
【问题描述】:

我有一个接受用户输入的 ASP.NET 表单。表单上有一个Submit 按钮和一个名为Calc 的按钮,它进行计算以填充文本字段。我遇到的问题是,在表单上我有一组<ASP:REQUIREDFIELDVALIDATOR> 验证器,当按下Calc 按钮时,表单得到验证。我不希望在按下Calc 按钮时验证必填字段,而只验证Submit 按钮。有什么办法吗?

【问题讨论】:

  • 在 ASP.NET Core 中(由于标签助手),您现在可以像往常一样直接在 <button> 上添加 formnovalidate 属性。
  • 如果有人正在使用 WebForms,但使用的是 HTML5 required 属性,您可以在按钮上使用 UseSubmitBehavior="false" 以防止进行所需的检查。
  • 如果有人在使用 Razor Pages,您可以使用 formnovalidate="formnovalidate"

标签: c# asp.net validation


【解决方案1】:

CausesValidation 属性设置为 false。

【讨论】:

    【解决方案2】:
    <asp:Button runat="Server" ... CausesValidation="False" />
    

    Button.CausesValidation(如果我没记错的话)。

    【讨论】:

      【解决方案3】:

      尝试将CausesValidation="false" 作为按钮属性。

      一些示例代码:

      http://weblogs.asp.net/scottgu/archive/2005/08/04/421647.aspx

      【讨论】:

        【解决方案4】:

        ASPX 页面:

        <asp:Button ID="buttonNew" runat="server" Text="New" CausesValidation="False" />
        

        代码隐藏页面:(.cs)

        buttonNew.CausesValidation = false;
        

        查看here 以了解有关控件的ValidatedValidating 事件的更多信息。

        【讨论】:

          【解决方案5】:

          将 button.causesValidation 设置为 false。

          this link

          但是,如果它所做的只是根据用户输入计算某些内容,那么您根本不应该将其发回。我建议使用 HTML 按钮并在其上附加一些 javascript 来为您完成工作,这样您就不会遇到这个问题了。

          【讨论】:

            【解决方案6】:

            在设计按钮时,您可以设置其属性 CausesValidation="false" 以避免对按钮单击事件进行验证。它不允许验证服务器控件并仅执行其单击事件

            【讨论】:

              【解决方案7】:

              你应该使用这个

              UseSubmitBehavior="False"

              【讨论】:

                【解决方案8】:

                在特定控件中禁用验证

                将控件的 CausesValidation 属性设置为 false。

                <asp:Button id="Button3" runat="server"
                  Text="Cancel" CausesValidation="False">
                </asp:Button>
                

                禁用验证控件

                Set the validation controls Enabled property to false.
                

                禁用客户端验证

                Set the validation controls EnableClientScript property to false.
                

                For More Info

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 2015-01-16
                  • 2017-10-24
                  • 1970-01-01
                  • 2020-10-11
                  • 2011-04-14
                  • 1970-01-01
                  • 2021-02-08
                  相关资源
                  最近更新 更多