Ho un progetto netapi .net mvc 4 che sto cercando di passare un array di un oggetto a un metodo sul mio controller.passa array di un oggetto a webapi
Ho trovato alcuni esempi qui su SO che parlano di dover impostare le proprietà del mio oggetto con: param1 = qualunque & param2 = bling & param3 = blah.
Ma non vedo come posso passare in una raccolta usando quello.
Ecco la mia firma del metodo. Si noti che ho decorato l'argomento con l'attributo [FromUri].
public List<PhoneResult> GetPhoneNumbersByNumbers([FromUri] PhoneRequest[] id)
{
List<PhoneResult> prs = new List<PhoneResult>();
foreach (PhoneRequest pr in id)
{
prs.Add(PhoneNumberBL.GetSinglePhoneResult(pr.PhoneNumber, pr.RfiDate, pr.FinDate, pr.State));
}
return prs;
}
qui è la mia semplice oggetto PhoneRequest:
public class PhoneRequest
{
public string PhoneNumber { get; set; }
public string RfiDate { get; set; }
public string FinDate { get; set; }
public string State { get; set; }
}
ed ecco un esempio di quello che sto usando per passare:
http://localhost:3610/api/phonenumber/getphonenumbersbynumbers/
[{"PhoneNumber":"8016667777","RfiDate":"","FinDate":"2012-02-11","State":"UT"},
{"PhoneNumber":"8018889999","RfiDate":"2012-12-01","FinDate":"","State":"UT"}]
utilizzare questo torna con "Bad Request "
Ho provato anche questo
http://localhost:3610/api/phonenumber/getphonenumbersbynumbers?
id=[{"PhoneNumber":"8016667777","RfiDate":"","FinDate":"2012-02-11","State":"UT"},
{"PhoneNumber":"8018889999","RfiDate":"2012-12-01","FinDate":"","State":"UT"}]
che raggiunge il metodo, ma l'array è nullo.
Come posso passare un array del mio oggetto PhoneRequest al mio metodo API Web?
Come ho menzionato in un [commento] (http://stackoverflow.com/questions/13962748/pass-array-of-an-object-to-webapi/13963155#comment28579974_13963155) a @Maggie Ying's [risposta] (http://stackoverflow.com/a/13963155/326110), il nome del metodo ('getphonenumbersbynumbers') dovrebbe ** non ** essere parte dell'URL in API Web ASP.NET. Invece, il metodo da usare è determinato tipicamente dal verbo HTTP. Vedere [Routing in ASP.NET Web API] (http://www.asp.net/web-api/overview/web-api-routing-and-actions/routing-in-aspnet-web-api) –