TempData как-то игнорирует обновления и удаляет - PullRequest
0 голосов
/ 13 марта 2020

Я работаю над приложением с корзиной покупок.

Ситуация

У меня в программе есть список покупаемых товаров, после добавления одного в корзину я устанавливаю для 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");
...