我做了一个简单的反馈表。我点击提交按钮,电子邮件发送正常,一切都很好。所以,我决定将Google recaptcha添加到页面中。 当我将方法包含在验证检查中时 -
if (ctrlGoogleReCaptcha.Validate()) {//onclick method here//}
OnClick根本不再发射。它甚至不足以达到我输入的断点。如果我拿出验证检查它再次起作用。我甚至试过一个基本的
if (Page.IsValid)
这也不起作用。
编辑 -
这是页面上的控件:
<div class="row">
<div class="input-field col-md-12">
<asp:Label runat="server" CssClass="col-md-2 control-label"></asp:Label>
<div class="col-md-6 col-lg-push-2">
<re:recaptchav2 SiteKey="xxxx" SecretKey="xxx" ErrorMessage="Human validation failed!" ID="recaptchaControl" runat="server" />
</div>
</div>
</div>
<div class="row">
<div class="input-field col-md-12">
<asp:LinkButton ID="lnkSubmit" runat="server" OnClick="btnsubmit_Click" CssClass="btn btn-primary waves-effect waves-light deep-purple">Contact us</asp:LinkButton>
</div>
</div>
protected void btnsubmit_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{
MailMessage mm = new MailMessage(txtEmail.Text, "siteinfo@onstagetonight.co.uk");
mm.Subject = "Feedback from website";
mm.Body = "Email from " + txtName.Text + "<br /><br />" + txtMessage.Text;
SmtpClient smtp = new SmtpClient();
smtp.Host = "mail.websitelive.net";
smtp.Send(mm);
panContact.Visible = false;
panContactThanks.Visible = true;
}
else
{
panContactFail.Visible = true;
}
}
在web.config中,有这一行
<system.web>
<pages>
<controls>
<add assembly="recaptchav2" namespace="recaptchav2" tagPrefix="re" />
</controls>
</pages>
</system.web>
参考文献中还有recaptchav2.dll。这些都取自其工作的网站的早期版本。一旦我将其复制到我的新网站,其中只有设计已更改,它就不再有效。我填写表格,点击“我不是机器人”,但是当我点击提交时,没有任何反应,就像OnClick事件甚至不存在一样。