Olá, Rene
Essa "feature" já foi solicitada para o time do MVC:
https://github.com/aspnet/Mvc/issues/3875
Porém, o time do MVC disse que não há está nos planos colocar isso na plataforma.
O jeito é implementar via @Url.Action()
e passando o objeto:
<a href="@Url.Action("ConfirmarDelete", new { item = item })">About</a>
Um outro jeito ainda seria serializar via Json, mas fica com cara de "gambiarra", pois você vai ter que de-serializar no lado do servidor:
asp-route-item="@Html.Raw(Json.Serialize(item))"
Outra maneira seria adicionar parâmetro de rota.
Para definir um novo parâmetro de rota, você pode criar mais um atributo asp-route-
seguido do nome do parâmetro.
Veja que abaixo eu adicionei o parâmetro categoria.
<a asp-action="carrinho"
asp-route-codigo="@produto.Codigo"
asp-route-categoria="@produto.Subcategoria.Id"
class="btn btn-success">Adicionar</a>
Essa nova informação de categoria é passada através da rota do ASP.NET Core. Então você precisa definir em uma das rotas
(não precisa ser na rota default) a informação a mais (categoria).
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Pedido}/{action=Carrossel}/{codigo?}/{categoria?}");
});