2013-01-25 6 views
7

Ho creato un gestore che restituisce il valore intero dopo aver eseguito alcune operazioni sul database. mi piacerebbe sapere come posso ottenere quel valore e assegnare quel valore a Label chiamando questo gestore.come chiamare il gestore ASHX e ottenere il risultato indietro

L'ho cercato su google e la maggior parte dell'esempio utilizza chiamate Jquery.AJAX per recuperare il valore. Sono sicuro che posso anche ottenere il valore usando quello. MA per alcune limitazioni nella mia azienda mi sono limitato a utilizzare il codice dietro.

Qualsiasi esempio aiuterà.

Handler: http://somesite.com/Stores/GetOrderCount.ashx?sCode=VIC 
which returns: 3 

necessità di assegnare ad un controllo di etichetta

ho provato questo molto finora.

HttpWebRequest request = (HttpWebRequest) WebRequest.Create("http://somesite.com/Stores/GetOrderCount.ashx?sCode=VIC"); 
HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
Label1.Text = response.ToString() // this does not work 
+0

cosa succede se si inserisce l'URL nel browser, che cosa sei tornato? qual è il formato? – Quannt

+0

se inserisco l'URL nel browser ottengo il valore .. esattamente quello che mi aspetto di ottenere ... ma non so come ottenerlo nella pagina di aspx. –

+1

OK, nota che se si desidera utilizzare HttpWebRequest, fare attenzione con response.Header, potrebbe essere necessario specificare alcune informazioni di intestazione per recuperare i dati. – Quannt

risposta

11

Usa WebClient.DownloadString

WebClient client = new WebClient(); 
Label1.Text = client.DownloadString ("http://somesite.com/Stores/GetOrderCount.ashx?sCode=VIC"); 

Si potrebbe anche chiamare direttamente il vostro gestore utilizzando Ajax e aggiornare l'etichetta.

Ecco un esempio jQuery:

$.get('Stores/GetOrderCount.ashx?sCode=VIC', function(data) { 
    $('.result').html(data); 
}); 
+0

mi ha dato quello che volevo ... +1 –

4

Prova questa

System.IO.Stream stream = response.GetResponseStream(); 
System.IO.StreamReader reader = new System.IO.StreamReader(stream); 
string contents = reader.ReadToEnd(); 
+0

Penso che la tua soluzione funzioni bene, MA è molto più facile usare WebClient, quindi lo streaming –