HTTP 404编码Url后出错

本文关键字:出错 Url 编码 HTTP | 更新日期: 2023-09-27 18:24:10

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

ASP.Net代码:

NavigateUrl=<%# HttpUtility.UrlEncode(string.Concat("UpdateMember.aspx","?groupId=", DataBinder.Eval(Container.DataItem, "GroupID").ToString())) %> 

Url:

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

导致"HTTP错误404.0-未找到您要查找的资源已被删除、名称已更改或暂时不可用。"

但是使用:

NavigateUrl=<%# string.Concat("UpdateMember.aspx","?groupId=", DataBinder.Eval(Container.DataItem, "GroupID").ToString()) %> 

Url:中的结果

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

结果很好。我是不是做错了什么?

HTTP 404编码Url后出错

您不应该对整个URL进行编码,至少不应该对第一个"?"符号进行编码。如果你编码?那么你的应用程序也会查找一个名为&扩展名"UpdateMember.aspx%3fgroupId%3d0032409901"不存在。

也许,这是你应该做的。

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

HttpUtility.UrlEncode() URL编码字符串

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

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