为什么在Visual C#2008中不存在提供命名空间名称的System.Web.HttpUtility.UrlEncode?

时间:2009-09-02 07:35:04

标签: c# visual-studio-2008 urlencode

我正在尝试使用HttpUtility.UrlEncode()方法对网址进行编码,为什么我会

  

名称空间'System.Web'中不存在类型或命名空间名称'HttpUtility'(您是否缺少程序集引用?)

错误? 我正在使用Visual C#2008,Express Edition。

我使用的代码很简单:

using System;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.IO;
using System.Web;
namespace Lincr
{
    public partial class frmMain : Form
    {
        public frmMain()
        {
            InitializeComponent();
        }

        private void cmdShorten_Click(object sender, EventArgs e)
        {
            WebRequest wrURL;
            Stream objStream;
            wrURL = WebRequest.Create("http://lin.cr?l=" + System.Web.HttpUtility.UrlEncode(txtURL.Text) + "&mode=api&full=1");
            objStream = wrURL.GetResponse().GetResponseStream();
            StreamReader objSReader = new StreamReader(objStream);
            textBox1.Text = objSReader.ReadToEnd().ToString();

        }

    }
}

4 个答案:

答案 0 :(得分:30)

您需要添加对System.Web的引用。在Solution Explorer中右键单击您的项目,然后选择 Add Reference ... 。如果您查看MSDN,您会看到它包含在System.Web.dll程序集中,据我记忆,默认情况下,新项目中没有引用它。

答案 1 :(得分:29)

万一有人遇到这种情况,运行VS 2010并且无法在可用的引用中找到System.Web ...

右键单击项目并选择Properties,如果Target Framework设置为“.Net Framework 4 Client”,则将其更改为“.Net Framework 4”。

但请注意,这将关闭,重新打开并重建您的项目(如果您有Web服务引用,则需要刷新这些内容)

答案 2 :(得分:5)

对于使用.NET 4.0或更高版本的用户,可以使用适用于客户端配置文件的WebUtility.UrlEncode(不需要System.Web程序集引用)。

答案 3 :(得分:0)

  1. 点击菜单中的项目标签
  2. 点击添加参考文献
  3. 在References窗口中单击Framework并检查System.Web