J'ai trouvé que vous n'avez pas du tout besoin du sérialiseur. Si vous renvoyez l'objet sous forme de liste. Permettez-moi d'utiliser un exemple.
Dans notre asmx, nous obtenons les données en utilisant la variable que nous avons transmise
// return data
[WebMethod(CacheDuration = 180)]
public List<latlon> GetData(int id)
{
var data = from p in db.property
where p.id == id
select new latlon
{
lat = p.lat,
lon = p.lon
};
return data.ToList();
}
public class latlon
{
public string lat { get; set; }
public string lon { get; set; }
}
Ensuite, en utilisant jquery, nous accédons au service en transmettant cette variable.
// get latlon
function getlatlon(propertyid) {
var mydata;
$.ajax({
url: "getData.asmx/GetLatLon",
type: "POST",
data: "{'id': '" + propertyid + "'}",
async: false,
contentType: "application/json;",
dataType: "json",
success: function (data, textStatus, jqXHR) { //
mydata = data;
},
error: function (xmlHttpRequest, textStatus, errorThrown) {
console.log(xmlHttpRequest.responseText);
console.log(textStatus);
console.log(errorThrown);
}
});
return mydata;
}
// call the function with your data
latlondata = getlatlon(id);
Et nous obtenons notre réponse.
{"d":[{"__type":"MapData+latlon","lat":"40.7031420","lon":"-80.6047970}]}