【发布时间】:2014-10-02 05:24:27
【问题描述】:
需要一个示例,说明如何将原始类型的集合传递给未绑定的函数/或操作,以及如何返回原始类型的集合。
例如整数列表或数组。
这是一个简单的例子。
List<int> GetEvenNumbers(List<int> numbers)
{
// loop through numbers collection and return a list of the even numbers
}
以下站点讨论了使用函数/动作,但没有解释传递/接收集合。
https://aspnet.codeplex.com/sourcecontrol/latest#Samples/WebApi/OData/v4/
我什至在“Show Me How With Code”上发布了一条建议,但没有收到回复。
http://aspnet.uservoice.com/forums/228522-show-me-how-with-code/suggestions/6264729-odata-v4-passing-collection-as-parameter-to-unbou
这是我有的一些代码,但它似乎不起作用。
// in the controller
[HttpGet]
[ODataRoute("GetEvenNumbers(numbers={numbers})")]
public IHttpActionResult GetEvenNumbers(List<int> numbers)
{
List<int> evenNumbers = new List<int>();
foreach (var number in numbers)
{
if (number % 2 == 0)
{
evenNumbers.Add(number);
}
}
return Ok(evenNumbers);
}
// in the WebApiConfig
var testCollectionFunction = builder.Function("GetEvenNumbers");
testCollectionFunction.CollectionParameter<int>("numbers");
testCollectionFunction.ReturnsCollection<int>();
在 WCF 中这很简单,但在 OData 中就不是那么简单了。
【问题讨论】:
标签: c# asp.net-web-api odata