Существует четыре способа передачи данных между страницами ASP.Net.
Два из них локализованы на одной странице, поэтому наличие двух вкладок браузера будет иметь разные параметры:
Использование строки запроса, либо в качестве параметров строки запроса (что вам не нужно), либо с использованием пути (то есть маршрутизация, которая описана в другом ответе);
Использование параметров POST (формы). Они невидимы для веб-сканеров;
Две из них занимают несколько страниц:
Я думаю, что вам нужны параметры POST (формы). Для этого потребуется изменить ссылки на страницах, где вы передаете эти параметры в формы. Ruby on Rails делает что-то подобное, предоставляя общий механизм, который создает форму в фоновом режиме и позволяет передавать параметры POST без фактического создания формы . Когда я, например, создать ссылку на http://google.com с методом, установленным на POST, он сгенерировал следующий HTML:
<a href="http://google.com" onclick="
var f = document.createElement('form');
f.style.display = 'none';
this.parentNode.appendChild(f);
f.method = 'POST';
f.action = this.href;
var m = document.createElement('input');
m.setAttribute('type', 'hidden');
m.setAttribute('name', 'param1');
m.setAttribute('value', 'value1');
f.appendChild(m);
f.submit();
return false;">Google.com using POST</a>
Я немного отформатировал вышеупомянутое, но на HTML-странице это выглядело бы как одна длинная строка. document.createElement('input');
до appendChild
позволяет вам установить параметры, которые вы хотите передать следующим стр.