gpt4 book ai didi

c# - updatepanel 内的 recaptchacontrol 问题

转载 作者:行者123 更新时间:2023-12-03 23:13:08 24 4
gpt4 key购买 nike

我有一个 recapchavalidator,它位于更新面板内:

        <asp:updatepanel runat=server id=updatepanel1>

<cc1:recaptchacontrol runat=server publickey=.. privatekey=.. id=recaptchavalidator1/>
<asp:button runat=server id=button1/>
</updatepanel>

我相信你们中的一些人可以猜到会发生什么。对于那些以前没有经历过这种情况的人来说,验证码控件消失了!如果 recaptchacontrol 返回错误验证,我尝试重定向到同一页面,但这导致了复杂的代码隐藏和 veiwstate 的丢失。有一个简单的解决方案吗?我在网上看了一些文章,但它们似乎很复杂,而且结构不太好。我需要更改更新面板的内容,因此请记住这一点。

感谢您的帮助。

最佳答案

我只用一个更新面板就可以很好地工作。

 <recaptcha:RecaptchaControl Theme="white"  ID="recaptcha" runat="server" PrivateKey="your_pub_key "
PublicKey="your_pub_key" />

<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>

<asp:Label Visible="false" ID="RecaptchaResult" runat="server" />
<asp:Button ID="RecaptchaButton" runat="server" Text="Submit" onclick="btnSubmit_Click" />

</ContentTemplate>
</asp:UpdatePanel>

关键是将您的更新面板设置为围绕发布按钮的条件,以便您手动调用更新以从服务器端重新加载 recaptcha 控件。

然后,在请求 reload() 后,在面板上调用 .update();

protected void btnSubmit_Click(object sender, EventArgs e)
{
recaptcha.Validate();

if (recaptcha.IsValid)
{
RecaptchaResult.Text = "Success";

RecaptchaResult.Text = "You got it!";
RecaptchaResult.ForeColor = System.Drawing.Color.Green;
RecaptchaResult.Visible = true;
ScriptManager.RegisterClientScriptBlock(this.Page, this.Page.GetType(), "recaptcha", "recaptcha.reload();", true);
UpdatePanel1.Update();
}
else
{
RecaptchaResult.Text = this.recaptcha.ErrorMessage;
RecaptchaResult.ForeColor = System.Drawing.Color.Red;
RecaptchaResult.Visible = true;
ScriptManager.RegisterClientScriptBlock(this.Page, this.Page.GetType(), "recaptcha", "recaptcha.reload();", true);
UpdatePanel1.Update();

}

}

关于c# - updatepanel 内的 recaptchacontrol 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1622654/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com