如何在WebApi Odata上将对象列表作为参数传递?

时间:2016-09-02 10:23:03

标签: c# asp.net-mvc asp.net-web-api odata

我在将对象列表作为WebApi Odata上的参数传递时遇到问题。 我有两个班:

public class Test{
  public int Id {get; set;}
  public string Desc {get; set;}
  public Tests[] Tests{ get; set; }
}

 public class Tests{
     public int Entry1 {get; set;}
     public int Entry2 {get; set;}
 }

在客户端,我将参数作为对象传递:

var postData = {
     onTest: {
          id: data.Id, 
          desc: data.Desc 
          tests: data.Tests // here there is list of two objects
                 }
            };

和WebApiConfig:

builder.EntitySet<Test>("Tests");
 var onTest = builder.EntityType<Test>().Collection.Action("UpdateTest");
 onTest .EntityParameter<Test>("onTest");

当我只发送Id和Desc时,它们会被传递给控制器​​动作,但是当我包含Test列表时,接收到的参数为空。

任何建议我如何通过参数列表通过参数测试控制器?

1 个答案:

答案 0 :(得分:3)

试试这个:

onTest.CollectionEntityParameter<Test>("onTests");

FYI相关文件:http://odata.github.io/WebApi/#04-07-action-parameter-support