He estado trabajando en esto durante 3 horas y me he dado por vencido. simplemente estoy tratando de enviar datos a un método web asp.net, usando jQuery. Los datos son básicamente un conjunto de pares clave/valor. así que traté de crear una matriz y agregar los pares a esa matriz.enviando objeto JSON con éxito a asp.net WebMethod, usando jQuery
Mis WebMethod (aspx.cs) tiene el siguiente aspecto (esto puede ser malo para lo que estoy construyendo en javascript, ya no sé):
[WebMethod]
public static string SaveRecord(List<object> items)
.....
Aquí es mi muestra javascript:
var items = new Array;
var data1 = { compId: "1", formId: "531" }; var data2 = { compId: "2", formId: "77" }; var data3 = { compId: "3", formId: "99" }; var data4 = { status: "2", statusId: "8" }; var data5 = { name: "Value", value: "myValue" }; items[0] = data1; items[1] = data2; items[2] = data3; items[3] = data4; items[4] = data5;
Here is my jQuery ajax call:
var options = {
error: function(msg) {
alert(msg.d);
},
type: "POST",
url: "PackageList.aspx/SaveRecord",
data: { 'items': items },
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
success: function(response) {
var results = response.d;
}
};
jQuery.ajax(options);
consigo el error - Invalid JSON primitive: items.
-
así que ... si hago esto:
var DTO = { 'items': items };
y establecer el parámetro de datos de la siguiente manera:
data: JSON.stringify(DTO)
entonces me sale este error:
Cannot convert object of type \u0027System.String\u0027 to type \u0027System.Collections.Generic.List`1[System.Object]\u0027
Cambie su método web para aceptar un Objeto antiguo simple, luego observe exactamente qué es el objeto y moldee y procese en el método web. –
Pregunta, sin embargo, está utilizando métodos web, pero no está utilizando la clase proxy de JavaScript que se genera automáticamente para usted? –
gracias Cory, cambié inicialmente el método web para aceptar un objeto simple, lo que me ayudó a descubrir qué esperar. ¡Gracias! – 29er