Я использую библиотеку CaptchaMvc.Mvc5.
Я создал частичное представление, чтобы показать код подтверждения, сгенерированный Captcha, который активируется @ Ajax.ActionLink
Если код подтверждения неверен, новый код не генерируется и выдает следующую ошибку:
Не удалось загрузить ресурс: сервер ответил на состояние 500 (Внутренняя ошибка сервера) http: // localhost: 2755 / DefaultCaptcha / Refresh
частичный просмотр вызова
@Ajax.ActionLink("PROCESAR PEDIDO", "ValidarCaptcha", "Principal",
new AjaxOptions {
HttpMethod = "GET",
UpdateTargetId = "ModalCaptcha"
},
new {
@class = "btn btn-flat btn-block",
data_toggle = "modal",
title = "Validar Captcha",
@data_target = "#ModalCaptcha",
@id = "btnprocesarpedido"
})
Частичный вид
@using CaptchaMvc.HtmlHelpers
<div class="modal-dialog modal-dialog-centered modal-sm" role="document">
<div class="modal-content padding10px">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span></button>
<h5 class="modal-title font-bold">Title </h5>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-12">
@using ( Ajax.BeginForm("ValidarCaptcha", "Principal", new AjaxOptions() { UpdateTargetId = "MensajeAlert", HttpMethod = "Post", InsertionMode = InsertionMode.Replace, OnSuccess = "OnAjaxSuccessCaptcha" }) )
{
@Html.Captcha("Refrescar", "Ingrese el texto que ve arriba:", 4, "Campo requerido", false)
<div class="form-horizontal">
<div class="paddingtop15px">
<div id="msjcaptcha"></div>
<input type="submit" value="Enviar" class="btn btn-primary btn-flat" />
</div>
</div>
}
</div>
</div>
</div>
</div>
</div>
Контроллер действий
[HttpPost]
public ActionResult ValidarCaptcha(string CaptchaInputText)
{
int _result = 0;
string _mensaje = string.Empty;
string _url = string.Empty;
try
{
if ( this.IsCaptchaValid(CaptchaInputText.ToUpper()) )
{
_result = 1;
_url = new UrlHelper(Request.RequestContext).Action("PedidoProcesado", "Principal");
}
else
{
_mensaje = "Captcha inválido";
}
}
catch ( Exception ex )
{
Utility.RegistrarExcepcion("PrincipalController", "HttpPost()-ValidarCaptcha()", ex.ToString(), Request.Browser.Browser.ToString(), Request.Browser.Version.ToString());
}
return Json(new { result = _result, msj = _mensaje, url = _url }, JsonRequestBehavior.AllowGet);
}
введите описание изображения здесь