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!