我想转到不同的 URL 并将参数作为查询字符串传递。此值包含一个 & 符号。我可以使用 Response.Redirect 来做到这一点。
Response.Redirect("http://www.mysite.com/?Value=" + Server.UrlEncode("This & That"))
但是,我更喜欢使用 LinkButton 控件的 PostBackUrl 属性来执行此操作,因为除了 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”。似乎在包含 LinkButton 的页面上的 IE 和其他浏览器中生成了不同的 JavaScript。我能做些什么来解决这个问题?为什么IE和其他浏览器有区别?
如果我改用 HyperLink 控件的 NavigateUrl 属性,那么我会在我尝试过的所有浏览器中获得正确的 URL。