当我使用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
效果很好。我做错了吗?
答案 0 :(得分:1)
您不应对整个网址进行编码,至少不是第一个"?"
符号。如果你编码?然后,您的应用程序会查找名为&amp;的文件。扩展“UpdateMember.aspx%3fgroupId%3d0032409901”,它不存在。
可能这是你应该做的。
http://localhost/UITest/MM/UpdateMember.aspx?groupId%3d0032409901
答案 1 :(得分:0)
HttpUtility.UrlEncode()
对字符串进行URL编码
这意味着它会从字符串中转义所有特殊字符,以便您可以将其作为URL的一部分插入,而不会将任何字符解析为URL修饰符。
在将仲裁文本作为URL的一部分插入时,您可以使用此类转义函数。