ASP.NET WebAPI方法有两个参数,一个数组

时间:2013-05-29 11:33:19

标签: asp.net-web-api

我是WebAPI的新手,并且有一些自定义方法调用。 因此,我正在使用Entity Framework并使用基本的CRUD方法创建了一个WebAPI。 但是现在我想添加一些自定义方法,是否可以将数组作为参数调用?是的,怎么样?

这是我的方法:

public void AddRoles(Guid userid, Guid[] roleids)

那么如何通过webapi调用此方法呢? 我用

试了一下
http://localhost:60690/api/MyController/AddRoles...

是否可以调用void方法?回答是什么?

谢谢和问候, 约尔格

2 个答案:

答案 0 :(得分:3)

http://localhost:60690/api/MyController/AddRoles?userid=<user id guid here>&roleids=<guid1 here>&roleids=<guid2 here>...

对于void方法,当然有可能,响应将是200代码和空体。

答案 1 :(得分:1)

对于GET,您可以参考以下SO问题:

How to pass an array of integers to ASP.NET Web API?

如果您想尝试使用POST,请继续阅读:

您应该为您的参数创建一个DTO:

public class AddRoleModel
{
    Guid UserId { get; set; }
    Guid[] RoleIds { get; set; }
}

将您的方法更改为接受POST和您的新AddRoleModel DTO而不是两个不同的参数,如下所示:

[HttpPost]
public void AddRoles(AddRoleModel model)
{
   ...
}

将该模型的json发布到方法

杰森看起来像这样:

{    
    UserId: "{guid}",
    RoleIds: ["{some guid}", "{some other guid}"]
}