Почему я не могу найти или использовать UrlEncode в Visual Studio 2010?

У меня есть строка, которую я хотел бы кодировать в стандартный формат URL. Из того, что я нашел, я должен был бы сделать это с помощью метода httpUtility.urlEncode, но у меня, похоже, нет этого.

Я добавил "использование" ссылок как на System.Web, так и на System.Net безрезультатно. Я также видел другие ссылки на server.urlEncode среди других вариантов, но я нигде не вижу метода.

Я использую последнюю версию С# в Visual Studio 2010. Является ли метод названным чем-то другим в этой версии, скрытым где-то в другом месте, или я полностью покинул базу?

Ответы

Ответ 1

По умолчанию новые проекты в Visual Studio 2010 нацелены на .NET Framework 4.0 Профиль клиента, который не включает сборку System.Web.

Вы можете изменить версию Framework, которую ваш проект задает в ваших свойствах проекта. На вкладке "Приложение" выберите ".NET Framework 4.0" из поля со списком "Целевая структура".

Затем убедитесь, что вы добавили ссылку на System.Web, используя диалог "Добавить ссылку".

Наконец, добавьте директиву using в начало вашего класса для пространства имен System.Web:

using System.Web;


В классе HttpUtility вы найдете различные перегрузки метода UrlEncode. Пример кода:

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

Ответ 2

В .Net 4.5 вы можете (должны?, "пожалуйста, используйте", говорит комментарий Katana) использовать метод System.Net.WebUtility.UrlEncode.

Ответ 3

Его нельзя назвать по-другому, поскольку Visual Studio не предоставляет имена классов или методов,.NET framework делает.

Все, что я могу вам сказать, это то, что классы System.Web. HttpUtility и System.Web. HttpServerUtility содержат метод UrlEncode(string).

Ответ 4

Да, добавление ссылки было моим ответом. Но убедитесь, что вы дважды проверяете проект, в котором он находится, если в вашем решении имеется более одного проекта. У меня было решение с тремя проектами. System.Web был добавлен в 2 проекта, но не третий проект.

Я потратил час, пытаясь понять, почему я не мог использовать HttpUtility, так как это была ссылка в основном проекте. Но я не проверял подпроекты решения.

Надеюсь, что это поможет кому-то.

Ответ 5

Если ваш проект нацелен на "профиль клиента .NET Framework X", вы не сможете использовать "System.Web", но вместо этого вы можете использовать "Uri.EscapeUriString | Uri.UnEscapeUriString".

Ответ 6

Поскольку вы видите только AspNetHostingPermission, AspNetHostingPermissionAttribute и AspNetHostingPermissionLevel, я сильно подозреваю (как и другие ребята), что вам не хватает ссылки.

Лучшее, что вы можете сделать, это запустить новый проект, потому что довольно сложно добавлять/удалять ссылки, не разрушая весь ваш проект.

Как добавить или удалить ссылки в Visual Studio (MSDN) показывает, как добавлять/удалять ссылки. В вашем случае вы должны проверить/добавить ссылку System.Web.