其实,你的应该HttpServerUtility.UrlEncode方法编码您的值的网址:
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
@Zack - 与Server.UrlEncode固定查询字符串作为其他人所说的应该使用。但是,别的东西是错误的。问题的根源在于如果'name'值有一个正斜杠(/),那么斜杠将被添加到'sku'值。你需要看看你是如何设置'name'和'sku'查询字符串参数来看看为什么斜杠被添加到'sku'。 – 2011-03-03 20:03:23