Question Pourquoi ne puis-je pas trouver ou utiliser UrlEncode dans Visual Studio 2010?


J'ai une chaîne que je voudrais encoder dans le format d'URL standard. De ce que j'ai trouvé, je devrais pouvoir le faire via le httpUtility.urlEncode méthode, mais je ne semble pas avoir ce disponible.

J'ai ajouté "utilisant" des références aux deux System.Web et System.Net en vain. J'ai également vu d'autres références à server.urlEncode parmi d'autres variantes, mais je ne vois la méthode nulle part.

J'utilise la dernière version de C # dans Visual Studio 2010. La méthode est-elle différente dans cette version, cachée ailleurs, ou suis-je complètement hors-base?


15
2018-02-11 08:41


origine


Réponses:


Par défaut, les nouveaux projets dans Visual Studio 2010 ciblent le .NET Framework 4.0 Profil client, qui n'inclut pas le System.Web Assemblée.

Vous pouvez modifier la version du Framework que votre projet cible dans les propriétés de votre projet. Sous l'onglet "Application", sélectionnez ".NET Framework 4.0" dans la liste déroulante intitulée "Cadre cible".

Ensuite, assurez-vous d'avoir ajouté une référence à System.Web en utilisant la boîte de dialogue "Ajouter une référence".

Enfin, ajoutez un using directif au sommet de votre classe pour le System.Web espace de nommage:

using System.Web;


Vous trouverez les différentes surcharges de la UrlEncode méthode dans le HttpUtility classe. Exemple de code:

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

29
2018-02-11 08:55



Dans .Net 4.5, vous pouvez (si ?, « s'il vous plaît utiliser », dit un commentaire Katana), utilisez la méthode System.Net.WebUtility.UrlEncode.


3
2018-02-21 11:26



Il ne peut pas être nommé différemment car Visual Studio ne fournit pas les noms de classe ou de méthode, contrairement à .NET Framework.

Tout ce que je peux vous dire, c'est que le System.Web.HttpUtility ET System.Web.HttpServerUtility les classes contiennent une méthode appelée UrlEncode(string).


2
2018-02-11 08:47



Oui, l'ajout de la référence a été ma réponse. Mais assurez-vous de vérifier le projet dans lequel il se trouve, si vous avez plus d’un projet dans votre solution. J'ai eu une solution avec 3 projets. System.Web a été ajouté à 2 projets mais pas au 3ème projet.

J'ai passé une heure à essayer de comprendre pourquoi je ne pouvais pas utiliser HttpUtility puisque c'était une référence dans le projet principal. Mais je n'ai pas vérifié les sous-projets de la solution.

J'espère que ça aide quelqu'un.


1
2017-08-08 02:01



Si votre projet cible ".NET Framework X Client Profile", vous ne pouvez pas utiliser "System.Web", mais vous pouvez utiliser "Uri.EscapeUriString | Uri.UnEscapeUriString" à la place.


1
2018-05-10 10:27



Parce que vous ne voyez que AspNetHostingPermission, AspNetHostingPermissionAttribute, et AspNetHostingPermissionLevel, Je soupçonne fortement (comme les autres gars) que vous manquez une référence.

Le mieux que vous puissiez faire est de démarrer un nouveau projet, car il est très compliqué d’ajouter ou de supprimer des références sans nuire à la totalité de votre projet.

Comment: ajouter ou supprimer des références dans Visual Studio (MSDN) montre comment ajouter / supprimer des références. Dans votre cas, vous devriez vérifier / ajouter le System.Web référence.


0
2018-02-11 09:12