1

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

这是我的方法:

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

那么怎么可能通过webapi调用这个方法呢?我试过了

http://localhost:60690/api/MyController/AddRoles...

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

谢谢和问候,乔尔格

4

2 回答 2

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

至于 void 方法,当然可以,响应是 200 code 和空 body。

于 2013-05-29T11:36:32.637 回答
1

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

如何将整数数组传递给 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 发布到方法

json 可能看起来像这样:

{    
    UserId: "{guid}",
    RoleIds: ["{some guid}", "{some other guid}"]
}
于 2013-05-29T11:41:31.223 回答