我正在建立一个带购物车的网站 我希望所有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>
当页面加载时,它看起来像这样:
但是在ObjectDataSource
的{{1}} GetProductsCart()函数之后,我得到了这个例子并且SelectMethod
发生了变化。
知道为什么会这样吗? 我该怎么办才能避免它?
答案 0 :(得分:0)
我应该做context.Session
这就是问题!!