我在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();
}
答案 0 :(得分:0)
要记住的要点:
如果您在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) {
}
});
}
希望有帮助。