Возникли проблемы с отслеживанием cartID как сеанса и инт - PullRequest
0 голосов
/ 06 сентября 2011

Я настраиваю музыкальный магазин MVC под свои нужды в MVC3. Единственное, что у меня зависает, это когда они отслеживают CartID как строку имени пользователя, я хочу отслеживать его через userID, поскольку у нас не будет имен пользователей. В любом случае, у меня проблемы с этой функцией:

 public int GetCartId(HttpContextBase context)
 {
        if (context.Session[CartSessionKey] == null)
        {
            if (context.Session["UserID"] != null)
            {
                context.Session[CartSessionKey] = context.Session["UserID"];
            }
            else
            {
                //Generate a new random GUID using System.Guid class
                Guid tempCartId = Guid.NewGuid();
                //Send tempCartId back to client as a cookie
                context.Session[CartSessionKey] = tempCartId;
            }
        }

 return context.Session[CartSessionKey];

 }

Где я получаю ошибку

"Ошибка 20 Не удается неявно преобразовать тип 'object' в 'int'. Существует явное преобразование (вы пропустили приведение?)"

Я понимаю, что context.Session[CartSessionKey] это объект, а не int, но я не знаю лучший способ:

A) Конвертировать все эти вещи, чтобы использовать Ints вместо GUID и сессий, или

B) Если это плохой способ сделать это, как я могу улучшить свой код, чтобы более правильно назначить случайное int для cartID, если пользователь не вошел в систему.

Спасибо!

1 Ответ

2 голосов
/ 06 сентября 2011

Вам необходимо привести объект к типу int, если вы храните int в объекте Session вместо GUID.

int x = (int) context.Session [CartSessionKey]

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