Я работаю над приложением с корзиной покупок.
Ситуация
У меня в программе есть список покупаемых товаров, после добавления одного в корзину я устанавливаю для TempData значение Y и когда страница отображается перенаправлены. Я получаю приятное предупреждение о том, что " Ваш предмет приобретен, хотите ли вы купить другой или оформить заказ. "
Проблема
Это работает нормально, за исключением ... Когда TempData установлен на Y один раз, я не могу сбросить его, удалить, установить его на что-то другое, или установить его на ноль. Конечно, прежде чем я спросил, я искал проблему и пробовал то, что было предложено, но безрезультатно. Таким образом, это процесс,
- Пользователь переходит на страницу магазина (с именем Index)
- Из магазина выбирается элемент и перемещается в cartPage.
- Если Товар помещен в корзину. Для параметра SucessMessage установлено значение Y, чтобы показывать мое предупреждение, и мы перенаправляем на индекс.
- То, что происходит сейчас, это то, что, даже если SucessMessage установлен в Y, он, похоже, не удерживается, и на странице индекса это вызывает сообщение Ваш товар куплен, хотите ли вы купить другой или проверить."Чтобы по-прежнему отображать.
Благодарим за помощь. С уважением
Controller.cs
//End part of code when Item is added to the cart
// Successmessage as it says says it was sucessful
try
{
db.SaveChanges();
//get cart total
UpdateCartAmount(User.Identity.GetUserId());
TempData["SuccessMessage"] = "Y";
return RedirectToAction("Index", "Services");
}
Index.cs html
//As soon as I enter the if statement
//I tried two ways to reset the temp data
<div class="card">
<div class="card-header">
<h5>Select Service</h5>
</div>
<div class="card-body">
@if (TempData["SuccessMessage"] != null)
{
TempData.Remove("SuccessMessage");
@TempData.Remove("SuccessMessage");
<script type="text/javascript">
const swalWithBootstrapButtons = Swal.mixin({
customClass: {
confirmButton: 'btn btn-success',
cancelButton: 'btn btn-info'
},
buttonsStyling: false
})
CartPage
//I try to remove it/ change it to nnull as the very first thing that happens when i load the cart page, and last thing before I load the cart page view. but still no chamge.
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult CartPage([Bind(Include = ...
{
TempData["SuccessMessage"] = null;
TempData.Remove("SuccessMessage");