Refer
1) You can also use session variable if the navigation is in a single application but it is not advisable (if your page is refered somewere else in any one website, and invoked from there ,your page will throw error because session variable won't be available at that time) .
2)You can encrypt the qurystring, so it will be more security.
3) Maybe the URL Rewriting will be the best option.
For more information, please try to refer to the following:
URL Rewriting with ASP.NET.
MSDN: URL Rewriting.