在asp.net Web API中映射数组

本文关键字:映射 数组 API Web asp net | 更新日期: 2023-09-27 18:02:55

我正在尝试将控制器函数映射到我的web api。

config.Routes.MapHttpRoute(
              name: "RPCRoutingApiCaseStudy",
              routeTemplate: "api/{controller}/{action}/{ServiceID}",
              defaults: new { ServiceID = RouteParameter.Optional }
              );

问题是,在我的控制器中,ServiceID应该是一个数组。我如何设置我的映射来接受一个数组,它会是什么样子?对不起,如果这是一个明显的问题,但我对这些东西很不熟悉,我正在努力学习。

我知道如何使用常规参数,其中像对于int,我将键入url/api/controller/method/5

我只是不知道该怎么处理数组

在asp.net Web API中映射数组

为了将复杂类型传递到Web API中,您需要使包含IENumerable类型的helper类,然后通过JSON封装将该对象传递到Web API中。

下面的例子接受一个POST方法,并接受一个包含List的CustomListType对象。然后你可以对这个对象做任何你喜欢的事情。

public class ValuesController : ApiController
{
    [System.Web.Http.AcceptVerbs("POST")]
    public bool POST(CustomListType myList)
    {
        //Do stuff here
        return true;
    }
    public class CustomListType
    {
        public List<int> myArray { get; set; }
    }

}

使用高级休息客户端Chrome;您可以通过发送对象来测试该post:

{myArray:[0,1,2]}

注意,因为CustomListType有一个名为"myArray"的成员,所以我们的JSON对象中也有"myArray"。

如果你在那里放了一个调试行,你应该能够看到对象和"myArray"的值