即使在網站停止運行後,我的asp.net網站也會將列表中的項目變量(購物車)保存。這很危險,因爲登錄的其他用戶將看到相同的項目列表(購物車)。 我將項目添加到列表中,然後關閉瀏覽器,然後重新運行網站並將項目添加到購物車,但它仍顯示我在重新打開瀏覽器之前添加的項目。 當我以前使用過一個Web應用程序並且使用了一個非常類似的代碼時,這並沒有發生。有沒有辦法解決這個問題?即使在關閉後,ASP.NET網站也會保存變量
在客戶端,我有一個GridView充滿了購物項目上的按鈕添加到購物車:
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "AddToCart")
{
int rowIndex = ((GridViewRow)((Button)e.CommandSource).NamingContainer).RowIndex;
GridViewRow row = GridView1.Rows[rowIndex];
Label ID = (Label)row.FindControl("lblItemId");
int itemID = Convert.ToInt32(ID.Text);
lstCart.Items.Clear();
OrderClass.AddToCart(itemID);
lstCart.DataSource = OrderClass.ViewAllOrderItem();
lstCart.DataBind();
Button clicked = (Button)row.FindControl("btnAddToCart");
clicked.Enabled = false;
Button remove = (Button)row.FindControl("btnRemoveFromCart");
remove.Visible = true;
}
的方法,這是調用從靜態類稱爲訂單班看起來像這樣:
private static List<Tuple<string, string>> allItems = new List<Tuple<string, string>>();
private static List<string> itemList;
public static void AddToCart(int itemID)
{
ItemCart.Add(itemID);
}
用作數據源列表框在購物車中顯示的所有項目的方法如下:
public static List<string> ViewAllOrderItem()
{
allItems = ItemCart.GetAllOrderItems();
itemList = new List<string>();
foreach (Tuple<string, string> eachItem in allItems)
{
itemList.Add("Item Name= " + eachItem.Item1 + " , Price= " + eachItem.Item2);
}
return itemList;
}
在一個名爲Itemcart,這令類調用靜態類的方法是
private static List<int> orderItems = new List<int>();
public static void Add(int itemID)
{
orderItems.Add(itemID);
}
和
public static List<Tuple<string,string>> GetAllOrderItems()
{
return ShoppingItems.GetItems(orderItems);
}
,該ItemCart調用靜態類的購物項目的方法是:
public static List<Tuple<string, string>> GetItems(List<int> itemID)
{
List<Tuple<string, string>> currentItemsList = new List<Tuple<string, string>>();
using (DataConnection con = new DataConnection())
{
foreach (int i in itemID)
{
string itemName = con.GolfItems.Where(gi => gi.ItemID == i).Select(gi => gi.ItemName).FirstOrDefault();
string itemPrice = con.GolfItems.Where(gi => gi.ItemID == i).Select(gi => gi.ItemPrice).FirstOrDefault();
currentItemsList.Add(Tuple.Create(itemName, itemPrice));
}
}
return currentItemsList;
}
a [mcve]會有幫助。因爲這可能導致這種情況太多。 –
如果您可以提供一些代碼,那麼確實會幫助您查看問題所在。 – MichaelDotKnox
@ DanielA.White我添加了代碼並希望它符合最小,完整和可驗證的示例標準。請看一看。 –