public IActionResult OnPost() { // Call custom validator var validator = new ContactModelValidator(); var results = validator.Validate(ContactModel); results.AddToModelState(ModelState, "ContactModel."); // Check Recaptcha if (settings.RecaptchaEnabled) { var recaptchaService = new RecaptchaService(); var recaptchaResponse = recaptchaService.Validate( new RecaptchaSettings { Enabled = true, RecaptchaKey = settings.RecaptchaSecretKey, RecaptchaResponse = Request.Form["g-recaptcha-response"] }, logger); if (recaptchaResponse.ServiceResultType != ServiceResultType.Success) { ModelState.AddModelError("Recaptcha", recaptchaResponse.Message); } } if (!ModelState.IsValid) { return(Page()); } HttpContent content = new StringContent(JsonConvert.SerializeObject(ContactModel), Encoding.UTF8, "application/json"); var resultOk = post.Post(settings.APIEndpoint, content) && post.Post(settings.ContactFormWebEndpoint, content); if (resultOk) { return(new RedirectToPageResult("ContactCS", new { s = 1 })); } else { Message = "Error calling API."; return(Page()); } }
public IActionResult OnPost([FromBody] ContactModel ContactModel) { // Call custom validator var validator = new ContactModelValidator(); var results = validator.Validate(ContactModel); results.AddToModelState(ModelState, null); // Check Recaptcha if (settings.RecaptchaEnabled) { var recaptchaService = new RecaptchaService(); var recaptchaResponse = recaptchaService.Validate( new RecaptchaSettings { Enabled = true, RecaptchaKey = settings.RecaptchaSecretKey, RecaptchaResponse = ContactModel.RecaptchaResponse }, logger); if (recaptchaResponse.ServiceResultType != ServiceResultType.Success) { ModelState.AddModelError("Recaptcha", recaptchaResponse.Message); } } if (!ModelState.IsValid) { return(new JsonResult(ModelState.Values)); } HttpContent content = new StringContent(JsonConvert.SerializeObject(ContactModel), Encoding.UTF8, "application/json"); var resultOk = post.Post(settings.APIEndpoint, content) && post.Post(settings.ContactFormWebEndpoint, content); return(new JsonResult(new { Status = resultOk ? "OK" : "Error calling API." })); }