2015-04-17 8 views
0

Я пытаюсь разобраться в своем запросе, используя следующее. Существует диез, который должен отображаться в адресе, например:URL # issuie C# querystring asp.net

Blk 344, Jurong West, улица 11, # 02-111

, который хранится в переменной address. Я пытаюсь использовать этот код, чтобы заменить хэш знак: address.Replace("#","%23")

string url = "thankyou.aspx?firstname=" + firstname + "&" + 
"lastname=" + lastname + "&" + "address=" + address.Replace("#","%23")+ 
"&" + "total=" + total + "&" + "nric=" + tbID.Text + "&" + "country=" + 
ddlCountry.SelectedValue + "&" + "orderid=" + orderid + "&"+ 
"postalcode="+tbPostalCode.Text; 

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

+0

мне кажется вам нужно что-то вроде [HttpUtility.UrlEncode Method] (https://msdn.microsoft.com/en-us/library/system.web .httputility.urlencode (v = vs.110) .aspx) – Grundy

+3

Я советую вам удалить все эти данные из URL-адреса и использовать формы instread – clement

+0

Можете ли вы опубликовать исключение, которое вы получаете? – Rajesh

ответ

0

Использование Uri.EscapeDataString для кодирования значения всех параметров запроса:

string url = "thankyou.aspx?firstname=" + Uri.EscapeDataString(firstname) 
      + "&lastname=" + Uri.EscapeDataString(lastname) 
      + "&address=" + Uri.EscapeDataString(address) 
      + "&total="  + Uri.EscapeDataString(total) 
      + "&nric="  + Uri.EscapeDataString(tbID.Text) 
      + "&country=" + Uri.EscapeDataString(ddlCountry.SelectedValue) 
      + "&orderid=" + Uri.EscapeDataString(orderid) 
      + "&postalcode=" + Uri.EscapeDataString(tbPostalCode.Text);