実際には、 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