我是WebAPI的新手,并且有一些自定义方法调用。 因此,我正在使用Entity Framework并使用基本的CRUD方法创建了一个WebAPI。 但是现在我想添加一些自定义方法,是否可以将数组作为参数调用?是的,怎么样?
这是我的方法:
public void AddRoles(Guid userid, Guid[] roleids)
那么如何通过webapi调用此方法呢? 我用
试了一下http://localhost:60690/api/MyController/AddRoles...
是否可以调用void方法?回答是什么?
谢谢和问候, 约尔格答案 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}"]
}