我正在创建一个链接,用于创建包含URL参数链接的URL参数。 问题是我有这样的链接
http://mydomain/_layouts/test/MyLinksEdit.aspx?auto=true&source=
http://vtss-sp2010hh:8088/AdminReports/helloworld.aspx?pdfid=193
&url=http://vtss-sp2010hh:8088/AdminReports/helloworld.aspx?pdfid=193%26pdfname=5.6%20Upgrade
&title=5.6 Upgrade
此链接转到书签添加页面,读取这些参数。
auto
是否要阅读以下参数
source
是您添加或取消
url
是书签链接
title
是书签的名称
url
和title
的值会输入2个字段。然后,用户必须点击save
或cancel
。
问题是当书签页面将值输入字段时,它将解码它们。
然后,如果您尝试保存,则不会让您保存,因为pdfname
值中的url
值中有空格。它需要链接没有任何空格。所以基本上,我想要它,以便在它进入字段后,它仍然是%20
而不是空格。
source
,auto
或title
没有问题,只有url
...
有没有办法解决这个问题?就像我可以用于%20
的特殊转义字符?
注意:我无法修改书签页。
我正在使用c#/ asp.net创建链接并转到它。
由于
答案 0 :(得分:17)
从.NET Framework 4.5开始,您可以使用WebUtility.UrlEncode
。
它位于System.dll
,因此不需要任何其他参考。
与Uri.EscapeUriString
与Uri.EscapeDataString
不同,它对字符串的长度没有任何限制,因此它可以用于POST请求
System.Net.WebUtility.UrlEncode(urlText)
另一种选择是
System.Uri.EscapeDataString()
答案 1 :(得分:2)
其他用户的一些详细信息:http://geekswithblogs.net/mikehuguet/archive/2009/08/16/134123.aspx
答案 2 :(得分:0)
在递交网址之前,只需使用HttpUtilty的UrlEncode
方法;
string encoded = HttpUtility.UrlEncode(url);