Я видел здесь пару других сообщений об использовании Recaptcha с ASP.net UpdatePanels, но еще не нашел ответа, который решает мою проблему.
Вот мой код ASPX:
<asp:UpdatePanel ID="updRecaptcha" runat="server" UpdateMode="Always">
<ContentTemplate>
<recaptcha:RecaptchaControl ID="btnrecaptcha" runat="server" Theme="clean" PrivateKey"<%$ Resources: General, CaptchaPrivateKey %>" PublicKey="<%$ Resources: General, CaptchaPublicKey %>" />
<asp:Label ID="recaptchaerror" runat="server" style="color: Red;"/>
</ContentTemplate>
</asp:UpdatePanel>
Итак, элемент управления Recaptcha находится внутри пользовательского элемента управления, который использует несколько проверочных элементов управления .Net (например, RequiredFieldValidator). Мне нужно проверить Recaptcha и элементы управления ASP.net, прежде чем продолжить процесс.
Если какая-либо из проверок не удалась (Recaptcha или .Net), элемент управления Recaptcha исчезает. Если посмотреть на исходный код HTML, элемент управления не загружается вообще после Postback - хотя я и говорю UpdatePanel обновить.
Я не могу полностью перезагрузить страницу, так как все это отображается в виде наложения поверх страницы, а на странице позади есть другие поля формы.
Пожалуйста, помогите!
Редактировать:
Из C #, когда Recaptcha не работает, я вызываю этот код:
ScriptManager.RegisterClientScriptBlock(Page, Page.GetType(), "InvalidRecaptcha", "alert('Recaptcha Failed');Recaptcha.reload();alert('Recaptcha Reloaded');", true);
Оба оператора предупреждения срабатывают, но Recaptcha по-прежнему не загружается.