Почему я не могу найти или использовать 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
.