Скриншоты ниже для пояснения
Используя бритвенные страницы, у меня есть страница под названием Продукты, на которой отображается продукт; изображение, имя, цена и т. д. Эти данные получены в моем методе get с использованием идентификатора, переданного с предыдущей страницы.
Я инициализирую свойство с именем Product типа Product для объекта, возвращаемого методом для получения продукт. Тем не менее, когда вызывается метод OnPost()
, единственный идентификатор продукта в объекте сохраняется (и я знаю, что это потому, что идентификатор передается в качестве параметра и, таким образом, легко доступен), все остальные части данных теряются. Я не могу понять почему, спасибо заранее.
Продукт
public class ProductModel : PageModel
{
public string Identity { get; set; }
public Product Product { get; set; }
private readonly IShopService _shopService;
private readonly UserManager<IdentityUser> _userManager;
public ProductModel(UserManager<IdentityUser> userManager, IShopService shopService)
{
_userManager = userManager;
_shopService = shopService;
}
private Task<IdentityUser> GetCurrentUserAsync() => _userManager.GetUserAsync(HttpContext.User);
public void OnGet(int id, string identity)
{
Product = _shopService.GetProduct(id);
Identity = identity;
}
public void OnPost()
{
_shopService.AddProductToBag(Product, GetCurrentUserAsync().Result);
}
}
OnGet()">
Снимок экрана выше представляет собой Product
после выполнения GetProduct()
. Он заполняется данными БД. Когда я пытаюсь использовать те же данные для AddProductToBag
в OnPost()
, каждое поле равно нулю.