У меня есть пошаговая форма для моей корзины (с одним представлением), мой метод в контроллере: Оформить заказ
Шаг 1: я сохраняю товары и... в сеансе
шаг 2. выберите адрес.
шаг3. Я хочу сэкономить время доставки в новом сеансе.
Я сохраняю его в новом сеансе, но у меня есть две проблемы:
Если я сохраняю метод и перенаправляюсь это для оформления заказа, корзина будет обновлена, и форма вернется к первому шагу.
если я возвращаю данные метода с помощью ajax, он возвращает ajax, но если я отправляю метод с помощью ajax, это будет обновлено снова. как я могу использовать и сохранить шаг 3 после получения формы оформления заказа (когда мы входим в корзину)
это мой метод сохранения:
[HttpPost]
public IActionResult SaveDeliveryAndPaymentDetailsInSession(CartViewModel model)
{
if (model != null && model.CartDeliveryDateViewModel != null)
{
var deliveryAndPaymentDetails = new CartDeliveryAndPaymentDetails
{
DeliveryDate = model.CartDeliveryDateViewModel.DeliveryDate,
DeliveryTime = model.CartDeliveryDateViewModel.DeliveryTime,
Details = model.CartDeliveryDateViewModel.Details,
PaymentMethod = model.CartDeliveryDateViewModel.PaymentMethod
};
_orderService.SaveDeliveryAndPaymentDetailsInSession(deliveryAndPaymentDetails);
var response = new
{
success = true,
// Optionally return updated form data
formData = model // Assuming model is updated and returned
};
return Json(response);
}
else
{
// Handle the case where model or its properties are null
return RedirectToAction("CheckOut"); // Or any other appropriate action
}
}
а это мой заказ:
[HttpGet("/UserPanel/CheckOut")]
public async Task CheckOut(int? activeTab )
{
var text = await _siteService.GetSiteSettingForEdit();
var tax = text.Tax;
var userId = User.GetCurrentUserId();
// Get From Session
var cartItems = _orderService.GetFromSession();
// Update ClientId In ShowCart after Login
foreach (var item in cartItems)
{
if (item.ClientId == 0)
{
item.ClientId = userId;
}
}
// Get user addresses
var userAddresses = await _orderService.GetClientContactInfoById(userId);
// بازیابی جزئیات تحویل و پرداخت از سشن
var deliveryDetails = _orderService.GetDeliveryAndPaymentDetailsFromSession();
// we check it in repo and create a list:
// List cartAddresses = new List();
//so we don't need to check if null, because in repo 100% create a list for it with object, but not null
// Create CartViewModel
var cartViewModel = new CartViewModel
{
Items = cartItems,
Tax = tax,
CartAddresses = userAddresses,
CartDeliveryDateViewModel = deliveryDetails
};
ViewData["ActiveTab"] = activeTab ?? 0;
await GetStateAndDistricts();
return View(cartViewModel);
}
Подробнее здесь: https://stackoverflow.com/questions/786 ... in-asp-net
Как сохранить несколько объектов из нескольких сеансов в корзине в ASP.NET ⇐ Jquery
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Хотите сохранить несколько идентификаторов (динамически) в массиве сеансов
Anonymous » » в форуме Php - 0 Ответы
- 6 Просмотры
-
Последнее сообщение Anonymous
-