2009-09-09 24 views
2

如何在C#中編寫此代碼?你可以使用Dictionary來做到這一點嗎?PHP到C#.NET/ASP.NET

$count = 0; 
if(count($_SESSION['goods']) > 0) { 
    $count = count($_SESSION['goods']) -1; // array start on zero. 
} 

$_SESSION['goods'][$count]["products_id"] = $_POST["products_id"]; 
$_SESSION['goods'][$count]["price"] = $_POST["price"]; 
$_SESSION['goods'][$count]["number"] = $_POST["number"]; 
+5

建議您發佈您的嘗試... – 2009-09-09 11:07:51

回答

1

有很多方法可以做到這一點,但這裏有一個簡單的方法。 (此代碼將需要在後面的頁面代碼,因爲它需要Page.Session屬性)

首先,你可能需要一個產品實體來存儲你的數據:

[Serializable] 
public class Product 
{ 
    public int ProductId{get;set;} 
    public int Price{get;set;} 
    public int Number{get;set;} 
} 

然後你就可以將您的產品存儲在如下會話中:

public void AddProductToSession(Product product) 
{ 
    var products = Session["goods"] as Dictionary<int, Product>; 
    if (products == null) products = new Dictionary<int, Product>(); 
    products.Add(product.ProductId, product); 
    Session["goods"] = product; 
} 

public Product GetProductFromSession(int productId) 
{ 
    Product product; 
    var products = Session["goods"] as Dictionary<int, Product>; 
    if (products == null || !products.TryGetValue(productId, out product)) 
    throw Exception(string.Format("Product {0} not in session", productId)); 
    return product; 
} 
+0

謝謝! 我已經編程了幾年的PHP,但現在已經過去了。淨。這是我想知道的事情之一。淨:) – sv88erik 2009-09-09 11:59:25

0

您將需要在C#中做更多的工作。

首先,您需要定義一個類來容納購物車物品,並將其稱爲CartItem。然後,您將實例化一個CartItem對象,將其字段設置爲帖子值,最後您將購物車項添加到列表中,該列表將保存在Session對象中。

祝你好運:)

0

方法很多,根據規劃的存儲和訪問方法,以及所需的數據結構的大小。

例如,一種方法是使用products_id,price和number成員變量創建一個對象,並將其存儲在數組中,然後存儲到Cache/Session中。