Estoy pasando dos parámetros de cadena de una llamada jQuery ajax a un método de controlador MVC, esperando una respuesta json. Puedo ver que los parámetros se completan en el lado del cliente, pero los parámetros coincidentes en el lado del servidor son nulos.jquery llamada Ajax - los parámetros de datos no se pasan a la acción MVC Controller
Aquí está el javascript:
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "List/AddItem",
data: "{ ListID: '1', ItemName: 'test' }",
dataType: "json",
success: function(response) { alert("item added"); },
error: function(xhr, ajaxOptions, thrownError) { alert(xhr.responseText); }
});
Aquí es el método de control:
Function AddItem(ByVal ListID As String, ByVal ItemName As String) As JsonResult
'code removed for brevity
'ListID is nothing and ItemName is nothing upon arrival.
return nothing
End Function
¿Qué estoy haciendo mal?
¿No debería ser 'de datos: {ListID: '1', NombreDeElemento: 'prueba'}, '? Sin comillas dobles – LukLed
LukeLed tiene razón: está pasando una cadena en lugar de un objeto. Quita las comillas dobles y estarás bien. – pixeline
Gracias por la respuesta. Intenté eliminar las comillas dobles y obtuve el mismo resultado. – Grant