在此场景中,我将什么放在路由属性的构造函数中?如果你知道有一篇文章在讨论这个问题,你可以给我发一个链接吗?
[RoutePrefix("api/MyApi")]
public class MyApiController : ApiController
{
//What goes in here?
[Route("")]
public HttpStatusCode EditPermissions(IEnumerable<MyType> myTypes)
{
//stuff
}
}
我的信息基于this article.
答案 0 :(得分:1)
在这种情况下,您不会将数据放在路线中,因为这会使URL看起来很糟糕并且不灵活(也不适用于您的示例)。
在你的情况下,我会简单地命名这条路线&#34; edit-permission&#34;。
[HttpPut, Route("edit-permission")] // The URL is then /api/MyApi/edit-permissions
public IHttpActionResult EditPermissions([FromBody]IEnumerable<MyType> myTypes)
{
// Do stuff with myTypes
return Ok("Editing permissions was a success!"); // Returns a 200 HTTP status code
}
如果您将类型放在http请求正文中而不是URL中,并在控制器中使用IHttpActionResult(或HttpResponseMessage)类型,则WebApi框架会自动将正文映射到myTypes属性。