我有一个querystring参数填充另一个页面,当参数以#标签#
开始时会出现问题例: mysitepage /细节?PARAM =#456
当然会发生这种情况,因为url中的hashtags结束了请求。问题是这些是数据库中的ID,无法更改。而不是使用查询字符串,是否有人可以通知我。
EDIT1 -
我意识到我正在编码问题所在的整个网址。现在我只做参数部分,但它似乎是使参数静态而不是动态现在:
示例:
String.Format("mysite.com?param="+Server.UrlEncode({0}), Eval("param"))
基本上它用花括号编码0而不是实际的评估值
答案 0 :(得分:4)
您应该结帐HttpUtility.UrlEncode(string)
它会将#编码为%23&当然,您可以使用UrlDecode()
答案 1 :(得分:1)
您需要对参数进行编码和解码。使用ASP.NET MVC,我正在使用Url.Encode()
和Url.Decode()
。
#456
编码为%23456
看起来您可以在ASP.NET中使用HttpUtility.UrlEncode()
和HttpUtility.UrlDecode()
。