Olá!
De acordo com a alternativa indicada como correta, o template da rota default precisa conter um /{pacienteId?} porque o método no controller recebe um argumento de mesmo nome:
IActionResult Historico(int pacienteId)Porém, no projeto atual, o método utilizado ainda nem recebe nenhum argumento:
public IActionResult Carrinho()Realizei um teste e validei que o código do produto continua sendo passado corretamente na rota desde que seja usado o mesmo nome tanto na rota default quanto na passagem de parâmetro adicional no Tag Helper. Por exemplo, passando id em vez de codigo:
Startup.cs:
routes.MapRoute(
name: "default",
template: "{controller=Pedido}/{action=Carrossel}/{id?}");Carrossel.cshtml
<a asp-action="Carrinho" asp-route-id="@produto.Codigo" class="btn btn-success">Adicionar</a>Imagino que o correto realmente é utilizar o mesmo nome do argumento do método (quando ele existe), para o ASP.NET Core realizar corretamente o binding. Mas como nesse caso o argumento ainda nem existe, só queria confirmar se faz sentido essa pergunta estar nessa posição no meio da aula (e também se meu entendimento está correto).
Obrigada!