15

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

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

我在 Visual Studio 2010 中使用最新版本的 C#。在此版本中调用的方法是否有所不同,隐藏在其他地方,还是我完全脱离了基础?

4

6 回答 6

29

默认情况下,Visual Studio 2010 中的新项目以 .NET Framework 4.0 Client Profile为目标,它不包括System.Web程序集。

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

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

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

using System.Web;


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

HttpUtility.UrlEncode("http://www.google.com/");
于 2011-02-11T08:55:55.467 回答
4

在 .Net 4.5 中,您可以(应该吗?“请使用”说 Katana 注释)使用 System.Net.WebUtility.UrlEncode 方法。

于 2014-02-21T11:26:16.020 回答
2

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

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

于 2011-02-11T08:47:05.123 回答
2

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

于 2013-05-10T10:27:37.263 回答
1

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

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

希望它可以帮助某人。

于 2012-08-08T02:01:16.413 回答
0

因为您只看到AspNetHostingPermissionAspNetHostingPermissionAttributeAspNetHostingPermissionLevel,所以我强烈怀疑(像其他人一样)您缺少参考。

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

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

于 2011-02-11T09:12:08.937 回答