2015-05-17 1 views
-1

У меня есть веб-api, который принимает класс как аргумент (MyClass). В котором свойство имеет список типов. Как передать аргумент, чтобы веб-api получил список в этом поле свойства.Пропустить аргумент для webapi, имеющего свойство List

Когда я передать Id = 1 & Name = ABC = & MyList [{AnotherClassName: "Имя"}] в теле POST с помощью клиента REST, я получаю значения только в Id и поле Имя. Как же я отправить Params в теле POST, так что я получает список «AnotherClass» в «MyList»

public class MyClass 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public List<AnotherClass> MyList { get; set; } 
} 

public class AnotherClass 
{   
    public int AnotherClassName { get; set; } 
} 

Благодарности

+0

Посмотрите на примере 7 здесь: https://damienbod.wordpress.com/2014/08/22/web-api-2-exploring-parameter-binding/. Это помогает? – DWright

ответ

0

Вы должны передать JSON, как это

{"Id":1,"Name":"abc","MyList":[{"AnotherClassName":1}]} 

На самом деле вы ошибаетесь в объекте MyList. Собственность AnotherClassName Тип данных: int, и вы передаете его string value, а также прилагаете JSON к фигурным скобкам {....}.

Лучший способ использовать NewtonSoft.JSON для преобразования вашего объекта в json перед отправкой.

MyClass mc = new MyClass(); 

mc.Id = 1; 
mc.Name = "abc"; 
List<AnotherClass> acl = new List<AnotherClass>(); 
acl.Add(new AnotherClass { AnotherClassName = 1 }); 

mc.MyList = acl; 

var serializedData = JsonConvert.SerializeObject(mc); 

 Смежные вопросы

  • Нет связанных вопросов^_^