Как сохранить несколько объектов из нескольких сеансов в корзине в ASP.NETJquery

Программирование на jquery
Ответить Пред. темаСлед. тема
Anonymous
 Как сохранить несколько объектов из нескольких сеансов в корзине в ASP.NET

Сообщение Anonymous »

У меня есть пошаговая форма для моей корзины (с одним представлением), мой метод в контроллере: Оформить заказ

Шаг 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Jquery»