I have this query object:
public class GetRecipeQuery: IRequest<RecipeResponse>
{
[BindRequired]
[FromRoute]
public int Id {get; set;}
}
And controller:
[ApiController]
[Route("[controller]")]
public class RecipeController
{
private AppDbContext _context;
private readonly IMediator _mediator;
public RecipeController(AppDbContext context, IMediator mediator)
{
_context = context;
_mediator = mediator;
}
[HttpGet("{Id}")]
// http://localhost:5555/Recipe/555
public RecipeResponse Get([FromRoute]GetRecipeQuery query)
{
if (query.Id == 0)
{
throw new ArgumentException("No Id!", nameof(query.Id));
}
var result = _mediator.Send(query).Result;
return result;
}
}
So I see this as a result:
Status: 400
"The value '{Id}' is not valid for Id."
Need help: How to bind Id
from route to GetRecipeQuery.Id
?
Otherwise i need to construct query objects manually in every controller method.