Вопрос фон:Сохранять значение переменной сеанса после его очистки?
У меня есть объект сеанса, который используется для хранения списка объектов под названием «CartItems». Я конвертирую этот объект в фактический экземпляр, устанавливаю его в другую переменную List, а затем окончательно очищаю список. Затем он отправляется в переменную ViewBag и отправляется в представление.
Вопрос:
То, что я пытаюсь сделать, не может быть возможно, но в данный момент, как только я очищаю экземпляр списка из CartItems все ссылки на это будут потеряны, а также. Пожалуйста, смотрите следующий код:
public ActionResult Complete(string OrderId)
{
//Retrieve the CartItem List from the Session object.
List<CartItem> cartItems = (List<CartItem>)Session["Cart"];
//Set the list value to another instance.
List<CartItems>copyOfCartItems= cartItems;
//Set the ViewBag properties.
ViewBag.OrderId = OrderId;
ViewBag.CartItems = copyOfCartItems;
//Clear the List of CartItems. This is where the **issue** is occurring.
//Once this is cleared all objects that have properties set from
//this list are removed. This means the ViewBag.CartItems property
//is null.
cartItems.Clear();
return View(ViewBag);
}
Могу ли я сохранить это значение, не теряя его после очистки списка?
Вы хотите [скопировать список] (http://stackoverflow.com/questions/1952185/how-do -i-Тетрадь элементы-из-списка-к-список-без-Еогеаспа). – Jasen
@ Jasen огромное спасибо, что отлично работали. Если вы установите это как ответ, я отметю его правильно – user1352057
Chintana предоставил хороший ответ и причину. – Jasen