Я хочу перейти на другой URL и передать параметр в виде строки запроса. Это значение содержит амперсанд. Я могу использовать Response.Redirect для этого.
Response.Redirect("http://www.mysite.com/?Value=" + Server.UrlEncode("This & That"))
Однако я предпочитаю использовать свойство PostBackUrl элемента управления LinkButton, чтобы сделать это, потому что я хочу передать дополнительную информацию в дополнение к значению в URL. Если я попытаюсь
<asp:LinkButton id="ID" runat="server" PostBackUrl="http://www.mysite.com?Value=This+%26+That"/>
и нажмите на ссылку в IE, затем я вижу http://www.mysite.com? Value = This +% 26 + That в качестве нового URL и могу использовать Request.QueryString ["Value"] для получения значения , Это прекрасно работает.
Однако, если я использую Chrome или Firefox, тогда новый URL будет http://www.mysite.com? Value = This + & + That , и я получу «This» в качестве значения вместо «This & That». ». Похоже, что другой JavaScript генерируется в IE и других браузерах на странице, содержащей LinkButton. Что я могу сделать, чтобы обойти проблему? Почему разница между IE и другими браузерами?
Если вместо этого я использую свойство NavigateUrl элемента управления HyperLink, я получу правильный URL-адрес во всех браузерах, которые я пробовал.