将参数传递给具有List属性的webapi

时间:2015-05-17 19:26:14

标签: c# asp.net-web-api rest-client

我有一个web api,它接受一个类作为参数(MyClass)。其中属性是类型列表。我如何传递参数,以便web api在该属性字段中收到一个列表。

当我使用REST客户端在POST正文中传递 Id = 1& Name = ABC& MyList = [{AnotherClassName:" The Name"}] 时,我得到了值仅在Id和Name字段中。我如何在POST主体中发送params,以便我收到一个" 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; }
}

由于

1 个答案:

答案 0 :(得分: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);