Übergeben von Parametern in einen jQuery-ajax-Aufruf ein ASP.NET webmethod
Ich weiß es gibt mehrere threads darüber, aber Sie nicht mir helfen und ich werde wahnsinnig hier!
Möchte ich einige Parameter in einer web-Methode mit jQuery, Ajax.
var paramList = '';
for(i = 0; i < IDList.length; i++){
if (paramList.length > 0) paramList += ',';
paramList += '"' + 'id' + '":"' + IDList[i].value + '"';
}
paramList = '{' + paramList + '}';
var jsonParams = JSON.stringify(paramList);
$.ajax({
type: "POST",
url: "editactivity.aspx/UpdateSequenceNumber",
data: jsonParams,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(response) {
}
});
In der ajax-Aufruf, wenn ich die Daten paramList bekomme ich die Fehlermeldung: "Ungültiger web service-Aufruf, fehlender Wert für parameter: \u0027a\u0027."
Wenn ich Daten zu jsonParams bekomme ich die Fehlermeldung:
"Cannot convert object of type \u0027System.String\u0027 zu geben
\u0027System.Sammlungen.Generisches.IDictionary`2[System.String,System.Objekt]\u0027"
Wenn ich schreiben paramList
es sich in einer korrekten JSON-format wie {"id":"140", "id":"138"}
Wenn ich schreiben jsonParams
, es ist in einem falschen format wie "{\"id\":\"140\",\"id\":\"138\"}"
Die web-Methode: (es ist nicht viel, aber..)
[System.Web.Services.WebMethod]
public static string UpdateSequenceNumber(string a, string b)
{
return a+b;
}
Was mache ich falsch? Kann nicht scheinen, um Holen Sie sich dieses JSON-Sache Recht.
UPDATE:
Nach etwas Hilfe aus der ersten Antwort, die ich jetzt senden {"id":["138","140"]}
im AJAX-request.
Die web-Methode nimmt eine Zeichenfolge namens id
als parameter statt.
[System.Web.Services.WebMethod]
public static string UpdateSequenceNumber(string id)
{
return id;
}
Nun bekomme ich eine neue Fehlermeldung:
"Type \u0027System.Array\u0027 wird nicht unterstützt für die Deserialisierung des
ein array ist."
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre json-parameter-Namen müssen identisch sein mit der c# Parameter-Namen.
Wenn Sie das senden von unbekannten Anzahl von Parametern an den server, Sie können concat auf der client-Seite in einen parameter und teilen Sie Sie dann auf server-Seite.