如何绕过 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 以了解有关控件的Validated
和Validating
事件的更多信息。
【讨论】:
【参考方案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?