2010-06-21 56 views
1

我正面临一个奇怪的错误。无法使用解析url解析包含冒号(:)的相对Url

Page.ResolveUrl("~/myPage.aspx?param=valueA:valueZ"); 

它只是不起作用,明显的原因是':'。

http://myMachine/myVirtual/default.aspx 

如果我点击一个链接之前containig的代码,我得到:

当我的意思是不工作我就这样一个网站意味着

http://mymachine/MyVirtual/~/myPage.aspx?param=valueA:valueZ 

任何人知道如何让它工作?

THX

+1

难道ASP页面真的要使用冒号分隔值?冒号通常指定端口(例如http://www.website.com:8080/)。 – mcandre 2010-06-21 15:38:13

+0

我同意你的意见。这种情况从我使用的日期时间开始计算出来,如下所示:dd/mm/yyyy hh:mm:ss。 这就是为什么我第一次尝试这样的事情,但没有worh: Page.ResolveUrl(Page.Server.UrlEncode(“〜/ myPage.aspx?param = valueA:valueZ”)) – Pitming 2010-06-21 15:44:55

回答

3

替换你的“:”以“%3A”,不知道这是唯一的解决方法,但它是一个跳出我的第一件事。

这是因为:字符是保留字符。欲了解更多有关保留字符的信息,你可以看看this site

+0

所以问题是,为什么在处理它之前,方法Resolve Url没有“自动编码”给定的参数字符串? – Pitming 2010-06-21 15:51:33

+0

真的吗?方法去编辑你的答案和复制我的答案的一部分,而不报复... – ircmaxell 2010-06-21 15:52:36

+0

真的,我们的答案碰巧是谷歌的第一个搜索结果,当你搜索'网址编码' – FlyingStreudel 2010-06-21 15:57:18