我正在使用Recaptcha在我的网站上停止垃圾邮件。下面是的RecaptchaRecaptcha在asp.net中不工作
<asp:Panel ID="Panel1" runat="server" style="padding:5px" BackColor="White"
BorderColor="#999999" BorderStyle="Solid">
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<br />
<recaptcha:RecaptchaControl ID="recaptcha" runat="server"
PrivateKey="XXXX-HIDDEN-XXXX"
PublicKey="XXXX-HIDDEN-XXXX" Theme="Red" />
<br />
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Submit" />
<asp:Button ID="Button3" runat="server" Text="Cancel" />
<asp:Label ID="lblResult" runat="server" Font-Size="Medium" ForeColor="Red"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Panel>
<asp:ModalPopupExtender ID="UpdatePanel1_ModalPopupExtender" runat="server"
Enabled="True" PopupControlID="Panel1" TargetControlID="Button2" BackgroundCssClass="modalBackground" CancelControlID="Button3">
</asp:ModalPopupExtender>
代码的代码Button1_Click
:
protected void Button1_Click(object sender, EventArgs e)
{
Page.Validate();
if (Page.IsValid)
{
lblResult.Text = "All Good";
}
else
{
lblResult.Text = "The words you entered are incorrect";
}
}
这段代码的目的是,每当用户进入东西的Recaptcha,如果字是正确的,那么它会显示“所有的好“,如果不是”你输入的字不正确“。
但问题是,当我点击Button1
,其Click
事件不会执行。但是,当recaptcha未被加载时(即,当互联网未连接时),Button1_Click()
执行并且仅执行在if(Page.isValid)
条件之外的代码。例如,如果我修改的单击事件是这样的:
protected void Button1_Click(object sender, EventArgs e)
{
lblResult.Text="Not in if condition";
Page.Validate();
if (Page.IsValid)
{
lblResult.Text = "All Good";
}
else
{
lblResult.Text = "The words you entered are incorrect";
}
}
然后,它成功地设置lblResult.Text
到"Not in if condition"
。但是,当加载Recaptcha时,即使是If
条件以外的行也不会执行。
我试图解决这个问题:
- 删除更新面板:同样的问题
- 测试实际域:同样的问题
- 调试,并检查是否有异常:无异常显示,在输出>调试屏幕
请告诉我有关此问题的任何其他解决方案及其发生的原因。
有人请尽快给我建议尽可能... –
而不是使用整个页面的东西是啥具体有来电:我迫使它来验证,然后检查,如果它在后背部有效固定它你可以使谷歌API。我会建议尝试沿着这些路线。 http://nf2p.com/dot-net/using-recaptcha-with-asp-net-and-c/ – vikingben