Difficulty generating a proper return url after redirecting a user to a shopping cart from a dynamically rendered PartialView
===

I have a View that is shaped like this:

    <div class="category>
        . . .
        <div class="subcategory">
            . . .
            <div class="product">
                . . .
            </div>
        </div<
    </div>
    . . .

There are more `categories`, `subcategories`, and `products` - but they would clutter the code.

Here is how the above page loads:

 1. When the page first loads, the user only sees `categories`.
 2. If they click a `category`, `subCategories` are loaded via a controller action call and a PartialView.
 3. When they click a `category`, `products` are loaded through a similar method.
  

My `products PartialView` contains a link to add the `product` to the user's cart and it takes the user to view said cart.  When the user views their cart there is a link back to their previous page that was generated using `@Html.Hidden("returnUrl", Request.Url.PathAndQuery)` on a form within the `products PartialView`.

The problem is `Request.Url.PathAndQuery` returns the link that generated the `product PartialView` when `step 3` above occurred.  

*I'm not sure how I should solve this problem:*

 - One way would be to grab the url that generated the above page in the first place, `step 1`, and return the user to that page in the state it was in before they clicked a `category` and `subCategory`.
    - This seems like a simple solution.
    - If I went this route, what would be the best way to grab the url (as `Request.Url.PathAndQuery` at the point of adding an item to the cart would not collect the correct link?
 - Another way I can think of would be to somehow load the page, when the user clicks to return to the page as generated above, in the exact same state that they saw it before they left to the cart.
    - I would prefer this solution, though I have no idea how I would achieve this using my current architecture.
    - How would I generate the page and load all the appropriate partial views? (If I knew this, I would likely have my answer as how to generate the necessary link)
    - Serious loss of `KISS`.
 - A final way would be to not automatically send the user to the cart.
    - This would make a lot of sense as some people don't like getting forced to view their shopping cart when they add a `product` to it.
    - The problem with this solution is that it is boring and doesn't teach me anything new.

Any advice on how I could approach this situation?