У меня есть проблема, из-за которой компания использует систему отслеживания бизнеса, которая фиксирует первое посещение пользователей и перенаправляет их на страницу, которую они пытались посетить, но с прикрепленным URL реферера ...
Теперь, когда URL-адрес реферера содержит URL-адрес, который человек пытался посетить (не спрашивайте почему, я не знаю), это заставляет меня иметь дубликат каждого значения.
Итак, посетив это ...
Home.aspx? Тест = тест & test2 = test2
становится
Home.aspx? Тест = тест & test2 = test2 & referrerurl = Home.aspx? Тест = тест & test2 = test2
Теперь, URL кодирование реферера решит проблему, но у меня больше шансов быть приставанным гориллой; так что вопрос стоит.
Как я могу дедуплировать вывод из .QueryString?
В настоящее время я использую это ...
private string queryClean(string entity)
{
try
{
if(Request.QueryString["referrerUrl"] != null){
string[] Split = entity.Split(new Char[] { ',' });
string tmpValue = Convert.ToString(Split[0]);
return tmpValue;
}else{ return entity; }
}
catch (Exception cleanError)
{
errors.Text += "-clean-" + cleanError + "-endclean-";
return entity;
}
}
(игнорируйте try / catch, у нас есть перехват ошибок на уровне приложения, но я все еще играю с ним).
Я использую C # .net 2
Спасибо
[Дополнительная информация]
reffererURL всегда будет в конце строки, поэтому после этой точки можно будет удалить всю строку запроса?
Я пытался использовать
string test = Convert.ToString(Request.QueryString);
string[] tRSplit = Regex.Split(test, "&referrerUrl");
Response.Write(tRSplit[0]);
и ...
System.Collections.Generic.List<string> testb = new System.Collections.Generic.List<string>(Convert.ToString(Request.QueryString).Split('&'));
for (int i = 0; i < testb.Count; i++)
{
Response.Write(i +": "+ testb[i].ToString()+"<br><br>");
}
Оба все еще производят дубликаты
Я мог бы использовать Трим Но есть ли более чистый / быстрый способ достижения этого.