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

时间:2011-02-11 08:41:31

标签: c# .net visual-studio-2010 urlencode system.web

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

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

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

6 个答案:

答案 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)

由于您只看到AspNetHostingPermissionAspNetHostingPermissionAttributeAspNetHostingPermissionLevel,我强烈怀疑(和其他人一样)您错过了参考资料。

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

How to: Add or Remove References in Visual Studio (MSDN)显示了如何添加/删除引用。在您的情况下,您应该检查/添加System.Web参考。