Mam problemy z tym kodem, który spędziłam ostatnie 3 godziny na szukaniu odpowiedzi. Jako, że nie było udane, będę po prostu pisać kod i zapytać, jakiego rodzaju parametry powinny mam na usługi internetowej, aby obsłużyć tego żądania:ASP.NET: problem z danymi jQuery AJAX 'data'
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
});
Teraz, jaki rodzaj podpisu powinien być w stanie zdobyć moją "dataToSend"?
Próbowałem:
[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; }
}
i
[WebMethod, ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string Foo(string name, object value, object[] args)
{
return "OK";
}
a także
[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; }
}
Całkiem pewna, że Sam ma to tutaj. Sprawdź http://elegantcode.com/2009/02/21/javascript-arrays-via-jquery-ajax-to-an-aspnet-webmethod/, aby uzyskać więcej informacji. Zakładając, że string naprawi to, myślę, że będzie to pierwsza składnia. –