Publicación de jQuery AJAX en el objeto MVC Controller: la solicitud aparece como nula
Sé que me estoy perdiendo algo en los detalles aquí.
ProblemaA pesar de buscar en Google, probar ejemplos, diferentes formatos, etc., la solicitud de AJAX que envío siempre se valida teniendo todos los campos vacíos, pero no siendo nulo.
Creo que no estoy enviando cosas en el formato adecuado para que el controlador lo reconozca como un objeto, pero no estoy seguro de qué.
Fiddler: como se ve mi peticiónCon algunos datos ficticios:
Código: Modelo de Clasepublic class ContactUsMessage
{
public string Email { get; set; }
public string Name { get; set; }
public string PhoneNumber { get; set; }
public string Message { get; set; }
}
Código: Controlador WebAPI [HttpPost]
public HttpResponseMessage NewMessage(ContactUsMessage messageToSend)
{
if (messageToSend == null)
{
var sadResponse = Request.CreateResponse(HttpStatusCode.BadRequest, "Empty Request");
return sadResponse;
}
var messageValidator = new ContactUsMessageValidator();
var results = messageValidator.Validate(messageToSend);
var failures = results.Errors;
var sadString = "";
if (!results.IsValid)
{
foreach (var error in failures)
{
sadString += " Problem: " + error.ErrorMessage;
}
var sadResponse = Request.CreateResponse(HttpStatusCode.NotAcceptable, "Model is invalid." + sadString);
return sadResponse;
}
else
{
SendContactFormEmail(messageToSend.Email, messageToSend.Name, messageToSend.PhoneNumber, messageToSend.Message);
}
Código: JavaScript en la páginafunction sendSubmissionForm() {
var dataObject = JSON.stringify(
{
messageToSend: {
'Email': $('#inpEmail').val(),
'Name': $('#inpName').val(),
'PhoneNumber': $('#inpPhone').val(),
'Message': $('#inpMessage').val()
}
});
$.ajax({
url: '/api/contactus/newmessage',
type: 'POST',
done: submissionSucceeded,
fail: submissionFailed,
data: dataObject
});
}