实际上,您应该使用HttpServerUtility.UrlEncode方法对 URL 的值进行编码:
example.aspx?name=<%=Server.UrlEncode(name)%>&sku=<%=Server.UrlEncode(sku)%>
URL 编码确保所有浏览器都能正确传输 URL 字符串中的文本。问号 (?)、与号 (&)、斜线 (/) 和空格等字符可能会被某些浏览器截断或损坏。因此,这些字符必须在标签或查询字符串中编码,其中字符串可以由浏览器在请求字符串中重新发送。
编辑:
让我们用您提供的值来检查一下:
name = Bellagio™ 16 1/2" High Downbridge Outdoor Wall Light
,
sku = 46910
:首先我创建了一个具有 2 个属性的页面:
public string Name
{
get
{
return "Bellagio™ 16 1/2\" High Downbridge Outdoor Wall Light";
}
}
public string Sku
{
get
{
return "46910";
}
}
然后将链接定义添加到页面:
<a href='1.aspx?name=<%=Server.UrlEncode(Name)%>&sku=<%=Server.UrlEncode(Sku)%>'>
this is a link
</a>
然后获取这些值(首先单击链接):
protected void Page_Load(object sender, EventArgs e)
{
var name = Request.QueryString["name"];
var sku = Request.QueryString["sku"];
}
这些值与您提供的值完全相同:Bellagio™ 16 1/2\" High Downbridge Outdoor Wall Light
和46910
.
不幸的是,我无法重现您在第一条评论中发布的错误 URL:LifeSizePDF.aspx?productname=Bellagio&%238482%3b+16+1%2f2&quot%3b+High+Downbridge+Outdoor+Wall+Light&shortsku=46910%2f