[SOLVED] Object reference not set to an instance of an object. While Adding items to Cart using Session in Asp.net mvc

Issue

Hello Everyone I am trying to add items to cart using Session But I am facing That issue
System.NullReferenceException: Object reference not set to an instance of an object.
Check This Image

Here is my View Where I want to show Cart items

 @foreach (var item in (List<Product>)Session["MyCart"])
                    {
                        
                        <li>
                            <a href="#" class="photo"><img src="@Url.Content(item.Product_Picture)" class="cart-thumb" alt="" /></a>
                            <h6><a href="#">@item.Product_Name </a></h6>
                            <p>1x -Rs <span class="price">@item.Product_SalePrice</span></p>
                        </li>
                     
                    }
                </ul>

Now This is my Action Controller

public ActionResult AddtoCart(int id)
    {
        List<Product> list;
        if (Session["MyCart"] == null)
        { list = new List<Product>(); }
        else
        { list = (List<Product>)Session["MyCart"]; }
        list.Add(db.Products.Where(p => p.Product_ID == id).FirstOrDefault());
        Session["MyCart"] = list;
        return RedirectToAction("Shop");
    }

Solution

You can check if your Session is not null on your View before you try to cast it and access its properties:

@if(Session["MyCart"] != null)
{
    foreach (var item in (List<Product>)Session["MyCart"])
    {
        
        <li>
            <a href="#" class="photo"><img src="@Url.Content(item.Product_Picture)" class="cart-thumb" alt="" /></a>
            <h6><a href="#">@item.Product_Name </a></h6>
            <p>1x -Rs <span class="price">@item.Product_SalePrice</span></p>
        </li>
     
    }
    </ul>
}
else
{
    <h2>Cart is empty</h2>
}

You should create a partial view for your carts and then refer it where it is required. There are many tutorial for partial views creation and usage You can refer to this tutorial

Answered By – Rahul Sharma

Answer Checked By – Mary Flores (BugsFixing Volunteer)

Leave a Reply

Your email address will not be published. Required fields are marked *