2
我想用ReCaptcha將表單發佈到ApiController。如何捕捉ASP.NET ApiController中的g-recaptcha-response?
<form>
<label for="name">Name:</label>
<input id="name" name="name" ><br/>
<label for="email">Email:</label>
<input id="email" name="email" type="email" ><br/>
<div class="g-recaptcha" data-sitekey="some_site_key"></div>
<input type="submit" value="Submit"/>
</form>
<script src="https://www.google.com/recaptcha/api.js"></script>
<script>
$(function() {
$('form').submit(function (event) {
var data = $('form').serialize();
console.log('form data: ', data);
$.post("api/test", data,
function (data) {
alert('success');
});
event.preventDefault();
});
});
</script>
形式的console.log()
聲明,我可以看到張貼的價值觀念受到的名,電子郵件和G-reCAPTCHA的響應名。
我想我可以在ApiController視圖模型,就像這樣:
public IHttpActionResult Post(FormModel model)
{
// automatic model binding to get the posted data.
}
public class FormModel
{
public string Name { get; set; }
public string Email { get; set; }
public string GRecaptchaResponse { get; set; }
}
但顯然沒有綁定g-recaptcha-response
到GRecaptchaResponse
規則。並且有效的屬性名稱不應包含破折號-
。
所以問題是,我們如何才能在服務器(ApiController)端收到g-recaptcha-response
值?