我有一个字符串,我想编码为标准的URL格式。根据我的发现,我应该能够通过httpUtility.urlEncode
方法做到这一点,但我似乎没有那个。
我添加了“使用”对System.Web
和System.Net
的引用无济于事。我还看到了其他变种中对server.urlEncode的其他引用,但我没有在任何地方看到该方法。
我在Visual Studio 2010中使用了最新版本的C#。此版本中的方法被称为不同的东西,隐藏在其他地方,还是我完全偏离了基础?
答案 0 :(得分:29)
默认情况下,Visual Studio 2010中的新项目以.NET Framework 4.0 客户端配置文件为目标,但不包括System.Web
程序集。
您可以在项目的“属性”中更改项目所针对的框架的版本。在“应用程序”选项卡下,从标有“目标框架”的组合框中选择“.NET Framework 4.0”。
然后,确保使用“添加引用”对话框添加了对System.Web
的引用。
最后,在System.Web
命名空间的类顶部添加using
directive:
using System.Web;
您将在HttpUtility
类中找到UrlEncode
method的各种重载。示例代码:
HttpUtility.UrlEncode("http://www.google.com/");
答案 1 :(得分:4)
在.Net 4.5中你可以(应该?,'请使用'表示Katana评论)使用System.Net.WebUtility.UrlEncode方法。
答案 2 :(得分:2)
由于Visual Studio不提供类或.NET框架所提供的类或方法名称,所以它的名称不同。
我可以告诉你的是System.Web。 HttpUtility AND System.Web。 HttpServerUtility 类包含一个名为UrlEncode(string)
的方法。
答案 3 :(得分:2)
如果您的项目以“.NET Framework X Client Profile”为目标,则不能使用“System.Web”,但可以使用“Uri.EscapeUriString | Uri.UnEscapeUriString”。
答案 4 :(得分:1)
是的,添加引用是我的答案。但是,如果您的解决方案中有多个项目,请务必仔细检查项目是否存在。我有一个包含3个项目的解决方案。 System.Web
已添加到2个项目中,但未添加到第3个项目中。
我花了一个小时试图找出为什么我不能使用HttpUtility
,因为它是主项目中的参考。但我没有检查解决方案的子项目。
希望它有所帮助。
答案 5 :(得分:0)
由于您只看到AspNetHostingPermission
,AspNetHostingPermissionAttribute
和AspNetHostingPermissionLevel
,我强烈怀疑(和其他人一样)您错过了参考资料。
您可以做的最好的事情就是开始一个新项目,因为在不破坏整个项目的情况下添加/删除引用非常复杂。
How to: Add or Remove References in Visual Studio (MSDN)显示了如何添加/删除引用。在您的情况下,您应该检查/添加System.Web
参考。