ASP.NET“'Session'抛出了类型'System.NullReferenceException'”主页的异常

时间:2013-05-26 14:24:29

标签: asp.net session datalist objectdatasource

我正在建立一个带购物车的网站 我希望所有Cart的项目都出现在母版页上。

这是我的SiteMaster.Master.cs:

  protected void Page_Load(object sender, EventArgs e)
    {
        System.Web.Security.MembershipUser user = System.Web.Security.Membership.GetUser();

        IBLClient b = new FrontEnd();
        if (user != null)
            Session["UserID"] = b.GetUserIDByUsername(user.UserName);

        if (Session["Cart"] == null)
        {
            Session["Cart"] = new List<string>();
        }

        if (!(Roles.IsUserInRole("Admin") || Roles.IsUserInRole("Seller")))
        {
            ManagePage.Visible = false;

        }

    }


    public BindingList<Product> GetProductsCart()
    {
        IBLClient b = new FrontEnd();
        BindingList<Product> ProductsList = new BindingList<Product>();


        if (Session["Cart"] != null)
        {
            foreach (string ProductId in (List<string>)Session["Cart"])
            {
                ProductsList.Add(b.GetProduct(int.Parse(ProductId)));
            }
        }

        return ProductsList;
    }

这是我的源代码:

 <asp:DataList ID="ProductsList" runat="server" CellPadding="4" DataSourceID="ProductsListObjectDataSource" ForeColor="#333333">
                                    <AlternatingItemStyle BackColor="White" />
                                    <ItemTemplate>
                                    </ItemTemplate>
                                    <SelectedItemStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" />
                                </asp:DataList>
                                <asp:ObjectDataSource ID="ProductsListObjectDataSource" runat="server" SelectMethod="GetProductsCart" TypeName="WebGUI.SiteMaster"></asp:ObjectDataSource>

当页面加载时,它看起来像这样:

enter image description here

但是在ObjectDataSource的{​​{1}} GetProductsCart()函数之后,我得到了这个例子并且SelectMethod发生了变化。

enter image description here

知道为什么会这样吗? 我该怎么办才能避免它?

1 个答案:

答案 0 :(得分:0)

我应该做context.Session这就是问题!!