Почему я не могу найти или использовать UrlEncode в Visual Studio 2010? - PullRequest
15 голосов
/ 11 февраля 2011

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

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

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

Ответы [ 6 ]

29 голосов
/ 11 февраля 2011

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

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

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

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

using System.Web;


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

HttpUtility.UrlEncode("http://www.google.com/");
4 голосов
/ 21 февраля 2014

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

2 голосов
/ 10 мая 2013

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

2 голосов
/ 11 февраля 2011

Его нельзя называть по-другому, поскольку Visual Studio не предоставляет имена классов или методов, а .NET Framework делает.HttpUtility И System.Web. HttpServerUtility классы содержат метод с именем UrlEncode(string).

1 голос
/ 08 августа 2012

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

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

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

0 голосов
/ 11 февраля 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...