Я хочу передать идентификатор Model.Game со страницы сведений на другую страницу просмотра, которая называется Корзина. Я делаю это, вставляя @Html.DisplayFor(model => model.Game.ID)
в app-route-id. Это уместно?
Details.cs html
@page "{id:int}"
@model GameSanctuary.Pages.Games.DetailsModel
@{
ViewData["Title"] = "Details";
}
<h2>Details</h2>
<div>
<h4>Game</h4>
<hr />
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(model => model.Game.G_Description)
</dt>
<dd>
@Html.DisplayFor(model => model.Game.G_Description)
</dd>
<dt>
@Html.DisplayNameFor(model => model.Game.G_Genre)
</dt>
<dd>
@Html.DisplayFor(model => model.Game.G_Genre)
</dd>
<dt>
@Html.DisplayNameFor(model => model.Game.G_Price)
</dt>
<dd>
@Html.DisplayFor(model => model.Game.G_Price)
</dd>
</dl>
</div>
<div>
<a asp-page="./Index">Back to List</a>
<a asp-page="./Cart" asp-page-handler="buynow" class="btn" asp-route-id="@Html.DisplayFor(model => model.Game.ID)">Add to Cart</a>
</div>
Cart.cs html .cs
public async Task<IActionResult> OnGetBuyNow(int id)
{
cart = SessionHelper.GetObjectFromJson<List<Item>>(HttpContext.Session, "cart");
if (cart == null)
{
cart = new List<Item>();
cart.Add(new Item
{
Game = await _context.Game.FirstOrDefaultAsync(m => m.ID == id)
});
SessionHelper.SetObjectAsJson(HttpContext.Session, "cart", cart);
}
return RedirectToPage("Cart");
}
Значение идентификатора, которое я получил в OnGetBuyNow
, равно 0, но ожидаемое значение должно быть 1 на основе model.Game.ID в Details.cshtml
. Это что-то не хватает между ними?