Я видел несколько других постов, касающихся использования 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, элемент управления вообще не загружается после обратной передачи - даже если я говорю UpdatePanel об обновлении.
Я не могу полностью перезагрузить страницу, так как все это отображается в виде наложения в верхней части страницы, а на странице есть другие поля формы.
Пожалуйста, помогите!
Edit:
Из C # при сбое Recaptcha я вызываю этот код:
ScriptManager.RegisterClientScriptBlock(Page, Page.GetType(), "InvalidRecaptcha", "alert('Recaptcha Failed');Recaptcha.reload();alert('Recaptcha Reloaded');", true);
Оба оператора оповещения срабатывают, но Recaptcha по-прежнему не загружается.