如何绕过 ASP.NET 中按钮的验证?

Posted

技术标签:

【中文标题】如何绕过 ASP.NET 中按钮的验证?【英文标题】:How to bypass validation for a button in 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" 【参考方案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

【讨论】:

以上是关于如何绕过 ASP.NET 中按钮的验证?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 asp.net 应用程序中注销按钮 Windows 身份验证

如何使用javascript在asp.net中gridview内的按钮单击上应用文本框空白验证?

如何使用asp.net按钮通过jquery进行验证然后进入后台代码web表单

是否可以在 ASP.NET MVC 的脚本块中引用 ViewData?

如何使用 jquery unobtrusive 和 Asp.Net Mvc 验证动态生成的单选按钮组?

如何使用jQuery unobtrusive和Asp.Net Mvc验证动态生成的单选按钮组?