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

J’ai une chaîne que j’aimerais encoder au format URL standard. D’après ce que j’ai trouvé, je devrais être capable de le faire via la méthode httpUtility.urlEncode , mais je ne semble pas l’avoir disponible.

J’ai ajouté “en utilisant” des références à la fois à 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 s’appelle-t-elle quelque chose de différent dans cette version, est-elle cachée ailleurs ou est-ce que je suis complètement à l’écart?

Par défaut, les nouveaux projets dans Visual Studio 2010 ciblent le profil client .NET Framework 4.0, qui n’inclut pas l’assembly System.Web .

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”.

Assurez-vous ensuite que vous avez ajouté une référence à System.Web à l’aide de la boîte de dialog “Ajouter une référence”.

Enfin, ajoutez une directive using en haut de votre classe pour l’espace de noms System.Web :

 using System.Web; 

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

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

Dans .Net 4.5, vous pouvez (devriez ?, utiliser un commentaire Katana dans le champ “veuillez utiliser”) à l’aide de la méthode System.Net.WebUtility.UrlEncode.

Il ne peut pas être nommé différemment car Visual Studio ne fournit pas les noms de classe ou de méthode, mais le framework .NET le fait.

Tout ce que je peux vous dire, c’est que System.Web. HttpUtility ET System.Web. Les classes HttpServerUtility contiennent une méthode appelée UrlEncode(ssortingng) .

Si votre projet cible “Profil client .NET Framework X”, vous ne pouvez pas utiliser “System.Web”, mais vous pouvez utiliser “Uri.EscapeUriSsortingng | Uri.UnEscapeUriSsortingng”.

Oui, l’ajout de la référence était ma réponse. Mais assurez-vous de bien vérifier le projet, qu’il est bien intégré, si vous avez plus d’un projet dans votre solution. J’ai eu une solution avec 3 projets. System.Web é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 puisqu’il s’agissait d’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.

Parce que vous ne voyez que AspNetHostingPermission , AspNetHostingPermissionAtsortingbute et AspNetHostingPermissionLevel , je soupçonne fortement (comme les autres gars) qu’il vous manque une référence.

Le mieux que vous puissiez faire est de démarrer un nouveau projet car il est assez compliqué d’append ou de supprimer des références sans ruiner votre projet dans son ensemble.

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