Не удается сохранить список в переменную сеанса / ViewBag - PullRequest
0 голосов
/ 24 июня 2018

У меня есть действие MVC, где я получаю некоторые данные из пользовательского интерфейса. Теперь я хочу присвоить эти данные объекту, а затем сохранить этот объект в списке сеансов. Но при каждом запросе счетчик сессии равен 0.

[HttpPost]
public ActionResult AddToCart(Purchase purchase)
{
    if(Session["AddedProduct"] == null)
    {
        List<AddedProductView> addedProducts = new List<AddedProductView>();
        AddedProductView addedProductView = new AddedProductView();
        addedProductView.ProductId = purchase.ProductId;

        addedProducts.Add(addedProductView);

        Session["AddedProduct"] = addedProducts;
    }
    else
    {
        List<AddedProductView> addedProducts = (List<AddedProductView>)Session["AddedProduct"];
        AddedProductView addedProductView = new AddedProductView();
        addedProductView.ProductId = purchase.ProductId;


        addedProducts.Add(addedProductView);

        Session["AddedProduct"] = addedProducts;                
    }   

    return View();
}

Здесь, при каждом запросе, я получаю новый список, что означает, что каждый раз выполняется условие if. Я сериализовал в своем классе. Что я здесь не так делаю?

И мой сценарий выглядит так:

<script>
    $(document).ready(function () {
        $('#btnAddToCart').click(function () {
            var data = $('#PurchaseForm').serialize();

            $.ajax({
                type: 'Post',
                url: '/Purchase/AddToCart',
                data: data,
                success: function (response) {
                    window.location = '/Purchase/AddToCart'
                }
            })
        })
    })
</script>

Ответы [ 2 ]

0 голосов
/ 25 июня 2018

просто необходимо вернуть json() вместо пустого view().

0 голосов
/ 24 июня 2018

Попробуйте следующее:

HttpContext.Current.Session.Add("currentUser", appUser);

И

HttpContext.Current.Session["currentUser"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...