为什么我在Visual Studio 2010中找不到或使用UrlEncode?

我有一个字符串,我想编码为标准的URL格式。 从我发现的,我应该能够通过httpUtility.urlEncode方法做到这一点,但我似乎没有那个可用。

我添加了“使用”对System.WebSystem.Net引用无济于事。 我还看到了其他变种中对server.urlEncode的其他引用,但我没有看到任何方法。

我在Visual Studio 2010中使用了最新版本的C#。在这个版本中,该方法被称为不同的东西,隐藏在其他地方,还是我完全脱离基础?

默认情况下,Visual Studio 2010中的新项目以.NET Framework 4.0 客户端配置文件为目标,该配置文件不包含System.Web程序集。

您可以在项目的“属性”中更改项目所针对的框架的版本。 在“应用程序”选项卡下,从标有“目标框架”的combobox中选择“.NET Framework 4.0”。

然后,确保使用“添加引用”对话框添加了对System.Web的引用。

最后,在类的顶部为System.Web命名空间添加using指令 :

 using System.Web; 

您将在HttpUtility类中找到UrlEncode方法的各种重载。 示例代码:

 HttpUtility.UrlEncode("http://www.google.com/"); 

在.Net 4.5中你可以(应该?,’请使用’表示Katana注释)使用System.Net.WebUtility.UrlEncode方法。

它不能以不同的名称命名,因为Visual Studio不提供类或.NET框架所提供的类或方法名称。

我只能告诉你的是System.Web。 HttpUtility AND System.Web。 HttpServerUtility类包含一个名为UrlEncode(string)

如果您的项目以“.NET Framework X Client Profile”为目标,则不能使用“System.Web”,而是可以使用“Uri.EscapeUriString | Uri.UnEscapeUriString”。

是的,添加参考是我的答案。 但是,如果您的解决方案中有多个项目,请务必仔细检查项目是否存在。 我有3个项目的解决方案。 System.Web已添加到2个项目中,但未添加到第3个项目中。

我花了一个小时试图找出为什么我不能使用HttpUtility因为它是主项目中的参考。 但我没有检查解决方案的子项目。

希望它可以帮到某人。

因为你只看到AspNetHostingPermissionAspNetHostingPermissionAttributeAspNetHostingPermissionLevel ,我强烈怀疑(和其他人一样)你错过了一个引用。

你能做的最好的事情就是开始一个新的项目,因为在不破坏整个项目的情况下添加/删除引用非常复杂。

如何:在Visual Studio (MSDN)中添加或删除引用显示如何添加/删除引用。 在您的情况下,您应该检查/添加System.Web参考。