2010-11-01 5 views
1

Если у меня есть страница под названием www.testsite.com, и я ссылаюсь на эту страницу с помощью строки запроса в URL-адресе, можно ли присоединить ту же самую цепочку для всех исходящих ссылок/трафик как-то?Добавить входящую строку запроса ко всем исходящим ссылкам/трафику C#

Например, я ссылаюсь на эту страницу следующим образом www.testsite.com?parameter1=somevalue И затем, на этой странице, я нажимаю ссылку на, например, google, и я бы хотел, чтобы этот параметр передавался так url будет www.google.com?parameter1=somevalue.

Я знаю, как это сделать вручную, но есть ли что-то, что может быть добавлено к URL-адресу автоматически? Как поймать исходящий запрос перед тем, как это произошло, и добавить параметр?

Спасибо!

Эрик

ответ

0

Если у вас есть центральное место, где вы выводите исходящие ссылки, вам придется делать это вручную (возможно, визуальный поиск студии/замена может помочь, но я хотел бы быть осторожным, как вы можете закончить которые вам не нужны).

3

вы могли бы сделать это довольно просто с Javascript или JavaScript с помощью JQuery

$("a").click(function(e){ 
    e.preventDefault(); 
    window.location = $(this).attr("href") + window.location.search; 
}); 

, которые должны получить вы начали

если вы хотели получить решение, не JQuery вы можете посмотреть в связывающие события, используя только

JavaScript

http://www.digimantra.com/tutorials/change-onclick-function-anchor-tag-javascript/

http://forums.techarena.in/software-development/1308647.htm

+1

Вместо того, чтобы устанавливать window.location, вы можете изменить атрибут href самой ссылки и потерять вызов 'preventDefault'. Это немного приятно, потому что установка window.location не * совершенно * то же самое, что и щелчок по ссылке - например, заголовок referrer не передается. – stevemegson

+0

Я решил сделать это, но я не был уверен, что событие клика не-jQuery не произошло бы до того, как было обработано href. В этом случае, возможно, было бы лучше сделать это href, добавив, как только страница закончит загрузку. – hunter

0

Вы можете использовать следующие использовать строки запроса параметров Вы можете цикл через весь запрос параметры строки, как это

int loop1, loop2; 
// Load NameValueCollection object. 
NameValueCollection coll = Request.QueryString; 

// Get names of all keys into a string array. String[] arr1 = coll.AllKeys; 

string parameters = ""; 

for (loop1 = 0; loop1 < arr1.Length; loop1++) 
{ 

    parameters += Server.HtmlEncode(arr1[loop1]) + "=" + coll.GetValues(arr1[loop1]); 

    for (loop2 = 0; loop2 < arr2.Length; loop2++) 
    { 
    parameters += Server.HtmlEncode(arr2[loop2]); 

    } 
} 

его просто базовая идея. Но вы можете прокручивать параметры, не зная имен.

Смежные вопросы