31

我想在控制台应用程序、VB.NET、VS 2010 Beta 2 中使用 HttpUtility.UrlEncode。

System.Web.HttpUtility.UrlEncode(item)

错误消息:“HttpUtility”不是“Web”的成员。

这个问题中,Anjisan 建议添加对 System.Web 的引用,如下所示:

  1. 在您的解决方案资源管理器中,右键单击引用
  2. 选择“添加参考”
  3. 在“添加引用”对话框中,使用 .NET 选项卡
  4. 向下滚动到 System.Web,选择它,然后点击确定

但是,我在该位置没有 System.Web 条目。

4

7 回答 7

32

System.Web在那里,但似乎 Visual Studio 默认不按名称排序。您需要单击Component name列以对该列表进行排序。

我能够运行此代码:

Console.WriteLine(System.Web.HttpUtility.UrlEncode(" ")); // +

只是添加一个System.Web参考,没有 System.Web.Extensions.

此外,您应该将目标框架从 .NET Framework 4 Client Profile 替换为 .NET Framework 4;转到项目>>属性...>>应用程序选项卡

于 2010-01-27T11:12:39.960 回答
14

确保您的目标框架是“.NET Framework 4”而不是“.NET Framework 4 Client Profile”。

于 2010-04-20T13:01:07.237 回答
6

如果您使用的是 .NET 4.0 或更高版本,则可以使用与客户端配置文件一起使用的 WebUtility.UrlEncode(不需要 System.Web 程序集参考)。

于 2015-11-26T00:19:13.330 回答
5

@iar,框架未设置为“错误的”。默认情况下,控制台和 Windows 应用程序(还有更多)在 Visual Studio 2010 中以 .NET Framework 4 客户端配置文件为目标。这是设计使然。当您在新项目对话框中定位“.NET Framework 4”时会发生这种情况。为什么它没有找到 System.Web.dll 是因为它不是 .NET Framework 4 客户端配置文件的一部分,因此项目系统找不到它并在构建时发出警告(您可能忽略了,授予您引用System.Web.dll)。您也不会在“添加引用”对话框的 .NET 选项卡中找到 System.Web.dll,因为该列表是根据目标框架过滤的。

于 2010-04-11T11:57:21.347 回答
1

您需要添加对System.WebSystem.Web.Extensions的引用。

于 2010-01-27T11:08:43.917 回答
1

将项目的目标框架从“.NET Framework 4 Client Profile”更改为“.NET Framework 4.0”对我有帮助,使用 .NET Framework 4 Client Profile 作为目标框架,我能够通过浏览将 System.Web 2.0 版本添加到 C:\ WINDOWS\Microsoft.NET\Framework\v2.0.50727 来自添加参考窗口,但对 System.Web 4.0 dll 执行相同操作会发出警告。

于 2010-08-26T22:00:07.890 回答
1

对于 Visual Studio 2010 中的 VB 项目,将目标框架从“.NET Framework 4.0 Client Profile”更改为“.NET Framework 4.0”的选项位于“项目”>“属性”>“编译”>“高级编译选项...”下

于 2011-12-28T21:07:02.470 回答