编码Url后出现HTTP 404错误

当我使用HttpUtility.UrlEncode对Url进行编码时,我最终收到服务器错误。

ASP.Net代码:

NavigateUrl= 

url:

 http://localhost/UITest/MM/UpdateMember.aspx%3fgroupId%3d0032409901 

导致“HTTP错误404.0 – 未找到您正在查找的资源已被删除,其名称已更改,或暂时不可用”。

但是使用:

 NavigateUrl= 

结果在Url中:

 http://localhost/UITest/MM/UpdateMember.aspx?groupId=0032409901 

这很好。 我做错了什么吗?

你不应该编码整个URL,至少不是第一个"?" 符号。 如果你编码? 此外,您的应用程序会查找名称和扩展名为“UpdateMember.aspx%3fgroupId%3d0032409901”的文件,该文件不存在。

也许这就是你应该做的。

 http://localhost/UITest/MM/UpdateMember.aspx?groupId%3d0032409901 

HttpUtility.UrlEncode()对字符串进行URL编码

这意味着它会从字符串中转义所有特殊字符,以便您可以将其作为URL的一部分插入,而不会将任何字符解析为URL修饰符。

将仲裁文本作为URL的一部分插入时,可以使用这种转义函数。