我正在尝试使用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>
有什么想法吗?
答案 0 :(得分:0)
虽然您使用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);
}
}
答案 1 :(得分:0)
输入LinkButton控件。看起来这就是我需要提交表单,在标签中包含HTML,并且能够暂停验证:
<asp:LinkButton
runat="server"
CausesValidation="false"
CssClass="button fullWidth">Press Here</asp:LinkButton>