I don't think this is going to be possible, or at least reasonably feasible, without making use of the query string. At the very least, it's likely going to be very browser-dependant. The form elements in question aren't actively "doing" anything on the "form", they're just links rendered by the browser. Clicking on them does nothing more than inform the browser that it should load the URL in the href
. So all of the information you need is going to have to be in that URL.
Why the aversion to using query string parameters? This is precisely their purpose, passing a behavior flag to a dynamic resource (page).
Edit: One idea that may work within your requirements it to replace these HTML anchors with LinkButton server controls. Then each can have its own event handler on the postback which can maintain state (which one was clicked) server-side and do a Response.Redirect (or perhaps even Server.Transfer) to the desired destination.
Conversely, you could write a JavaScript function that performs a POST to the destination page with a form value containing which one was clicked and call that function (passing it the value) in the onClick event for those anchor tags. Then the destination page will just need to read the POST value.
But these are considerably more obtuse than just using a query string value.