Используйте FromRoute и FromQuery в одном действии ApiController в AspNetCore 2.2 - PullRequest
1 голос
/ 03 мая 2019

Использование ASP.NET Core 2.2 У меня есть следующее действие ApiController:

[ApiController]
public class PostController : Controller 
{

    [HttpGet("posts/{postId:int:min(1)}")]
    public async Task<IActionResult> GetByPostId([FromQuery]GetByPostIdRequest request) 
    {

    }
}

Где GetByPostIdRequest является следующим:

public class GetByPostIdRequest 
{
    [FromRoute]
    public Int32 PostId { get; set; }
    public String LanguageCode { get; set; }
    public IncludeExpression Include { get; set; }
}

Единственный способ получить значения для всех параметров:

  1. Имеет FromQuery в действии, поэтому у меня нет ошибки Unsupported Media Type

  2. Содержите FromRoute внутри класса Request для привязки PostId.

Нет ли другого способа сделать это?

Я попробовал следующее, что логично для меня, но не работает:

[ApiController]
public class PostController : Controller 
{

    [HttpGet("posts/{postId:int:min(1)}")]
    public async Task<IActionResult> GetByPostId([FromRoute, FromQuery]GetByPostIdRequest request) 
    {
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...