验证MVC5 Captcha

时间:2018-03-30 05:26:33

标签: jquery asp.net-mvc

我在MVC5表单上添加了验证码,并使用Ajax提交表单。在控制器中,this.IsCaptchaValid()方法总是返回“false”。 请让我知道如何在使用Ajax调用提交表单时验证验证码。我正在使用CaptchaMVC5以及下面的代码。

<div>
@Html.Captcha(3)
<input type="submit" value="Send" onclick="submit()" />
</div>
<script language="javascript">
function submit() {

    $.ajax({
        url: URL,
        type: "POST",
        data: { formdata: formData },        
        success: function (data) {

        },
        error: function (data) {

        }
    });
}
</script>

控制器操作方法:

[HttpPost, CaptchaVerify("Captcha is not valid")]
public ActionResult Index(Registration Registration)
{
    // Code for validating the Captcha
    if (this.IsCaptchaValid("Validate captcha"))
    {
         ViewBag.ErrMessage = "Validation Messgae";
    }
    return View();
}

2 个答案:

答案 0 :(得分:0)

要记住的要点:

  • 只需加入CaptchaMvc库。
  • 使用CaptchaMvc.HtmlHelpers命名空间。
  • 使用MathCaptcha命名空间来使用mathCaptcha。
  • 使用CaptchaMvc命名空间来使用CharCaptcha。
  • 对于Char CAPTCHA,请使用@ Html.Captcha(3)帮助程序类。

如果您在MVC中使用验证验证码时有任何复杂性,可以参考以下链接。

  

https://www.c-sharpcorner.com/UploadFile/bd8b0b/how-to-implement-captcha-in-Asp-Net-mvc/

答案 1 :(得分:0)

我遇到了同样的问题,只是将表格序列化为数据。实际上,我没有将其作为json对象发送,它对我有用。

function submit() {

    $.ajax({
        url: URL,
        type: "POST",
        data: $('form').serialize(),        
        success: function (data) {

        },
        error: function (data) {

        }
    });
}

希望有帮助。