小编Ben*_*min的帖子

noCAPTCHA reCAPTCHA在UpdatePanel中消失

我正在用VB.Net将noCAPTCHA reCAPTCHA实现到现有的表单中.它位于UpdatePanel中,并使用服务器端验证来验证用户是否已完成CAPTCHA(请参阅ASP.NET服务器端的验证回收2(无CAPTCHA reCAPTCHA))

如果用户未能通过CAPTCHA或任何其他经过验证的字段,则由于回发而无法重新加载CAPTCHA.如何解决这个问题,以便在回发后CAPTCHA不会消失?

我的CAPTCHA代码:

<div id="captcha" class="g-recaptcha" runat="server" data-sitekey="MySiteKey"></div>
Run Code Online (Sandbox Code Playgroud)

api.js放在Site.Master头中.

<script src="https://www.google.com/recaptcha/api.js" async defer></script>
Run Code Online (Sandbox Code Playgroud)

扩大.

我尝试过一种解决方案但最终失败了.我补充道

<div id="captcha" class="g-recaptcha" runat="server" data-sitekey="MySiteKey"></div>
Run Code Online (Sandbox Code Playgroud)

到我的MasterPage的主体并将其扔在UpdatePanel中,给它一个id,等等.

    <asp:UpdatePanel UpdateMode="Conditional" runat="server" ID="noCaptcha">
        <ContentTemplate>
            <asp:ScriptManager runat="server"></asp:ScriptManager>
            <script src="https://www.google.com/recaptcha/api.js" async defer></script>
        </ContentTemplate>
    </asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)

然后我在Site Master的代码隐藏中创建了一个函数,如下所示:

Public Sub TriggerCaptchaReload()
    noCaptcha.Update()
End Sub
Run Code Online (Sandbox Code Playgroud)

当用户尝试验证并提交表单时

如果他们失败了,我试图让更新面板刷新

CType(Me.Page.Master, MasterPage).TriggerCaptchaReload()
Run Code Online (Sandbox Code Playgroud)

它位于后面的控制代码上.

这没用.也许有一个潜在的解决方案可以找到吗?

vb.net asp.net updatepanel recaptcha

2
推荐指数
1
解决办法
5797
查看次数

标签 统计

asp.net ×1

recaptcha ×1

updatepanel ×1

vb.net ×1