0

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

ASP.NET 代码:

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

网址:

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

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

但是使用:

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

结果在网址:

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

效果很好。我做错了什么吗?

4

2 回答 2

1

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

可能,这就是你应该做的。

http://localhost/UITest/MM/UpdateMember.aspx?groupId%3d0032409901
于 2013-07-22T15:04:42.727 回答
0

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

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

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

于 2013-07-22T14:54:52.233 回答