Domanda

Ho una stringa che vorrei codificare nel formato URL standard. Da quello che ho trovato, dovrei essere in grado di farlo tramite il httpUtility.urlEncode Metodo, ma non mi sembra di averlo disponibile.

Ho aggiunto riferimenti a "usare" ad entrambi System.Web e System.Net inutilmente. Ho anche visto altri riferimenti a server.urlencode tra le altre varianti, ma non vedo il metodo da nessuna parte.

Sto usando l'ultima versione di C# in Visual Studio 2010. Il metodo chiamato qualcosa di diverso in questa versione, nascosto da qualche altra parte o sono completamente fuori base?

È stato utile?

Soluzione

Per impostazione predefinita, nuovi progetti in Visual Studio 2010 mirano a .NET Framework 4.0 Profilo del cliente, che non include il System.Web assemblaggio.

Puoi modificare la versione del framework che il tuo progetto si rivolge alle proprietà del tuo progetto. Nella scheda "Applicazione", selezionare ".NET Framework 4.0" dal combobox etichettato "Framework Target".

Quindi, assicurati di aver aggiunto un riferimento a System.Web Utilizzando la finestra di dialogo "Aggiungi riferimento".

Infine, aggiungi un file using direttiva in cima alla tua classe per il System.Web spazio dei nomi:

using System.Web;


Troverai i vari sovraccarico del UrlEncode metodo nel HttpUtility classe. Codice di esempio:

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

Altri suggerimenti

In .NET 4.5 è possibile (dovresti?, "Utilizzare" dice un commento katana) utilizzare il metodo System.net.webutility.urlencode.

Non può essere nominato in modo diverso poiché Visual Studio non fornisce i nomi di classe o metodo, lo fa .net framework.

Tutto quello che posso dirti è che il sistema.web.Httputililità E System.Web.Httpserverutility le classi contengono un metodo chiamato UrlEncode(string).

Se il tuo target del progetto ".NET Framework X Client Profile", non è possibile utilizzare "System.Web", ma è possibile utilizzare invece "Uri.escapeuristring | Uri.unescapeuristring".

Sì, l'aggiunta del riferimento è stata la mia risposta. Ma assicurati di ricontrollare il progetto, che si trova, se hai più di 1 progetto nella tua soluzione. Avevo una soluzione con 3 progetti. System.Web è stato aggiunto a 2 progetti ma non al terzo progetto.

Ho trascorso un'ora cercando di capire perché non potevo usare HttpUtility Dal momento che era un riferimento nel progetto principale. Ma non ho controllato i proietti della soluzione.

Spero che aiuti qualcuno.

Perché vedi solo AspNetHostingPermission, AspNetHostingPermissionAttribute, e AspNetHostingPermissionLevel, Sospetto fortemente (come gli altri ragazzi) che ti manchi un riferimento.

Il meglio che puoi fare è iniziare un nuovo progetto, perché è piuttosto complicato aggiungere/rimuovere i riferimenti senza rovinare l'intero progetto.

Come: aggiungere o rimuovere i riferimenti in Visual Studio (MSDN) mostra come aggiungere/rimuovere i riferimenti. Nel tuo caso, dovresti controllare/aggiungere il System.Web riferimento.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top