That is what Kentico controls use...but are you sending the item to the url correctly?
Here is an example of a link created to allow someone to finish their order at a later date:
string orderHash = ShoppingCart.GetHashCode().ToString();
return "<a href=\"" + paymentPageURL + "?o=" + orderHash + "\">Make Payment</a>";
Retrieving order id:
string orderHash = QueryHelper.GetString("o", string.Empty);
orderId = ValidationHelper.GetInteger(WindowHelper.GetItem(orderHash), 0);
Sounds like you aren't adding the hash to the window correctly or something along those lines.