我想知道在我浪费时间试图找出问题所在之前,是否可以将集合传递到ODataController的帖子。
我已经在互联网上看到了这个问题的变体,但没有任何东西能让我得到答案。
我在ODataContoller上创建了Post方法,我想传入一个复杂对象的IEnumerable。但是,当我调试控制器时,参数为空。
当我获取集合中的每个单独元素并将其传递给Controller的Post(采用单个对象)时,该对象被接受。所以我知道各个对象的格式正确。
答案 0 :(得分:1)
从技术上讲,这是可能的。如果在以下调用中将null
作为complexObjects
[HttpPost]
public IHttpActionResult CreateMany([FromBody] IEnumerable<ComplexObject> complexObjects)
{
// ...
}
这可能是由于json对象中的格式错误造成的。如果你有一个可以发布的工作单个对象,你只需要将它包装在括号中......即使数组只包含一个元素,数组也是一个数组。这假设您通过邮递员,小提琴手等检查您的网络API动作,您可以“撰写”整个请求。或者,您可以使用'GET all'操作的输出(如果有的话)作为输入。
关于另一个方面,列表创建的REST-fulness,您可能会发现RESTful way to create multiple items in one request有趣
希望这有帮助。