ASP.NET 使用 HTML 5 提交按钮阻止表单验证

ASP.NET Prevent Form Validation with HTML 5 Submit Button

我正在尝试使用 HTML 5 按钮元素提交 ASP.NET 表单。我还希望它在单击时不触发验证。这将提交表单,但仍会触发验证:

<button runat="server"
CausesValidation="false"
type="submit"
name="myButton"
id="myButton">Press Here</button>

我特别尝试不使用 HTML 输入或 ASP:Button 元素。它们都可以工作,但不允许在按钮文本中使用 HTML(图像等..)。

我页面上的示例验证元素:

<asp:RequiredFieldValidator
ValidationGroup="myValGroup"
ControlToValidate="phone"
ID="phoneRequiredVal"
runat="server"
ErrorMessage="Phone is required."
Display="Dynamic"
CssClass="defaultErrorText"></asp:RequiredFieldValidator>

有什么想法吗?

尽管您使用 HTML 标记 (<button>) 作为服务器端控件 (<button runat="server" ...>),但 ASP.NET 服务器不希望此组件作为回发或回调发件人。结果,在表单提交期间,服务器端发生事件验证错误。

要解决此问题,请使用 ClientScriptManager.RegisterForEventValidation 方法将按钮注册为回发发件人:

public partial class _Default : System.Web.UI.Page { protected override void Render(HtmlTextWriter writer) { Page.ClientScript.RegisterForEventValidation("myButton"); base.Render(writer); } }

进入LinkBut​​ton控件。看起来这是我提交表单所需要的,在标签中有 HTML,并且能够停止验证:

<asp:LinkButton
runat="server"
CausesValidation="false"
CssClass="button fullWidth">Press Here</asp:LinkButton>

在此处找到: How do I make a form submit with a LinkButton?