【发布时间】:2022-01-11 07:36:53
【问题描述】:
我想将 int 数组作为参数传递给 ASP.NET OData 路由,但无法使其工作。
我尝试了以下方法:
[ODataRoute("IWantMeSomeNumbers/GetForNumbers(numbers={numbers})")]
public IQueryable<IAmAnAppropriateResponse> GetForNumbers(int[] numbers)
{
// snip
}
[ODataRoute("IWantMeSomeNumbers/GetForNumbers(numbers=[{numbers}])")]
public IQueryable<IAmAnAppropriateResponse> GetForNumbers(int[] numbers)
{
// snip
}
[ODataRoute("IWantMeSomeNumbers/GetForNumbers(numbers={numbers})")]
public IQueryable<IAmAnAppropriateResponse> GetForNumbers(IEnumerable<int> numbers)
{
// snip
}
[ODataRoute("IWantMeSomeNumbers/GetForNumbers(numbers=[{numbers}])")]
public IQueryable<IAmAnAppropriateResponse> GetForNumbers(IEnumerable<int> numbers)
{
// snip
}
[ODataRoute("IWantMeSomeNumbers/GetForNumbers(numbers={numbers})")]
public IQueryable<IAmAnAppropriateResponse> GetForNumbers([FromODataUri] int[] numbers)
{
// snip
}
[ODataRoute("IWantMeSomeNumbers/GetForNumbers(numbers=[{numbers}])")]
public IQueryable<IAmAnAppropriateResponse> GetForNumbers([FromODataUri] int[] numbers)
{
// snip
}
[ODataRoute("IWantMeSomeNumbers/GetForNumbers(numbers={numbers})")]
public IQueryable<IAmAnAppropriateResponse> GetForNumbers([FromODataUri] IEnumerable<int> numbers)
{
// snip
}
[ODataRoute("IWantMeSomeNumbers/GetForNumbers(numbers=[{numbers}])")]
public IQueryable<IAmAnAppropriateResponse> GetForNumbers([FromODataUri] IEnumerable<int> numbers)
{
// snip
}
[ODataRoute("IWantMeSomeNumbers/GetForNumbers()")]
public IQueryable<IAmAnAppropriateResponse> GetForNumbers(ODataActionParameters parameters)
{
// snip
}
在每种情况下,我都会收到以下错误:
The path template 'IWantMeSomeNumbers/GetForNumbers(numbers={numbers})' on the action 'GetForNumbers' in controller 'IWantMeSomeNumbers' is not a valid OData path template. Bad Request - Error in query syntax.
谁能告诉我这是否可行,如果可以,我做错了什么??
【问题讨论】: