Ho avuto problemi con questo codice che aveva trascorso le ultime 3 ore a scavare intorno e cercando di trovare una risposta. Come io non ha avuto successo, mi limiterò a pubblicare il codice e chiedo che tipo di parametri dovrei avere il mio servizio web per gestire questa richiesta:ASP.NET: problema param jQuery AJAX 'dati'
var args = [{ key: 'myId', value: 'myValue' }, { key: 'myOtherId', value: 'myOtherValue'}];
var dataToSend = { name: 'fooId', value: 'fooValue', args: args };
$.ajax({
type: 'POST',
url: 'fooURL',
data: dataToSend,
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: OnSuccess,
error: OnError
});
Ora, che tipo di firma avrei dovuto essere in grado ottenere il mio "dataToSend"?
ho provato:
[WebMethod, ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string Foo(string name, object value, List<Args> args)
{
return "OK";
}
public class Args
{
public string key { get; set; }
public object value { get; set; }
}
e
[WebMethod, ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string Foo(string name, object value, object[] args)
{
return "OK";
}
e anche
[WebMethod, ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string Foo(dataToSend dataToSend)
{
return "OK";
}
public class dataToSend
{
public string name { get; set; }
public object value { get; set; }
public List<Args> args = new List<Args>();
}
public class Args
{
public string key { get; set; }
public object value { get; set; }
}
Abbastanza sicuro che Sam lo abbia qui. Controlla http://elegantcode.com/2009/02/21/javascript-arrays-via-jquery-ajax-to-an-aspnet-webmethod/ per maggiori informazioni. Supponendo che la stringa lo risolva, penso che sarà la prima sintassi. –