Question

J'ai une chaîne que j'aimerais encoder dans le format d'URL standard.De ce que j'ai trouvé, je devrais être capable de le faire via la httpUtility.urlEncode la méthode, mais je ne semble pas avoir ce qui est disponible.

J'ai ajouté "à l'aide" des références à la fois System.Web et System.Net en vain.J'ai aussi vu d'autres références au serveur.urlEncode parmi d'autres variantes, mais je ne vois pas la méthode de n'importe où.

J'utilise la dernière version de C# dans Visual Studio 2010.Est la méthode dite à quelque chose de différent dans cette version, caché quelque part d'autre, ou suis-je complètement à côté de la plaque?

Était-ce utile?

La solution

Par défaut, les nouveaux projets dans Visual Studio 2010 la cible .NET Framework 4.0 Profil Du Client, qui ne comprend pas la System.Web de l'assemblée.

Vous pouvez changer la version du Cadre de votre projet cible dans les Propriétés de votre projet.En vertu de la "Demande" de l'onglet, sélectionnez ".NET Framework 4.0" dans la liste déroulante appelée "Cible"cadre de.

Ensuite, assurez-vous que vous avez ajouté une référence à System.Web à l'aide de la "Ajouter une Référence" boîte de dialogue.

Enfin, ajouter un using la directive vers le haut de votre classe à la System.Web espace de noms:

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/");

Autres conseils

Dans .Net 4.5, vous pouvez (devez?, "s'il vous plaît utiliser", dit un Katana commentaire) utiliser le Système.Net.WebUtility.UrlEncode méthode.

Il ne peut pas être nommé différemment depuis Visual Studio n'est pas de l'approvisionnement de la classe ou des noms de méthode, l' .NET framework n'.

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

Si votre projet cible ".NET Framework Client X Profil",vous ne pouvez pas utiliser "le Système de.Web",mais vous pouvez utiliser "Uri.EscapeUriString | Uri.UnEscapeUriString" à la place.

Oui, l'ajout de la référence a été ma réponse.Mais assurez-vous de vérifier le projet, que ce soit dans, si vous avez plus de 1 projet dans votre solution.J'ai eu une solution avec 3 projets. System.Web a été ajouté à 2 projets, mais pas le 3ème projet.

J'ai passé une heure à essayer de comprendre pourquoi je ne pouvais pas utiliser HttpUtility depuis qu'il a été une Référence dans le projet principal.Mais je n'ai pas vérifier les sous-projets de la Solution.

Espérons que cela aide quelqu'un.

Parce que vous ne voyez AspNetHostingPermission, AspNetHostingPermissionAttribute, et AspNetHostingPermissionLevel, Je suspecte fortement (comme les autres gars) que vous êtes en manque une référence.

Le meilleur que vous pouvez faire est de commencer un nouveau projet, parce que c'est assez compliqué à ajouter/supprimer des références sans ruiner l'ensemble 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 consulter/ajouter l' System.Web de référence.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top