Response.Redirect

domenica 31 gennaio 2010 - 19.39

gae58 Profilo | Senior Member

salve,

ho realizzato uina pagina per il downLoad di file.

Per far comparire la scritta di apertura o salvataggio del file, uso il metodo Response.Redirect e funziona tutto bene.

La questione è che ho ntatao che dopo il Response.Redirect non prosegue nella lettura del codice, tipo vorrei far comparire un messaggio o cancellare il file.

Mi sapete dire se c'è un metodo per far proseguire dopo questo comando o se ne devo utilizzare un altro?

grazie


Gaetano

ridaria Profilo | Expert

certo che c'è.

Response redirect, accetta due parametri:

il primo, obbligatorio "indirizzo url del redirect";

il secondo, "endResponse", facoltativo di tipo booleano che indica se proseguire l'elaborazione dello script corrente oppure bloccare l'elaborazione dello script corrente al response.redirect.

Credo che la tua esigenza sia questa.


Ciao






Riccardo D'Aria

gae58 Profilo | Senior Member

ho provato questa riga, non so se sia giusta come l'ho scritta:
Response.Redirect("http://www.pippo.aspx, true);
Response.Write("IIIIIIIIIIII");

l'ho provata anche con false, ma niente da fare, la scritta del response.Write non me la mette.

Ho letto anche del server.transfer, ma mi riotrno l'errore che vuole il percprspvirtuale e non so cosa sia.


Gaetano

ridaria Profilo | Expert

ma se fa un redirect alla pagina pippo.aspx, e tu vuoi visualizzare sulla pagina corrente la stringa del response.write, non la vedrei mai per il semplice motivo che vedi la pagina pippo.aspx e scrivi nella pagina che fa il redirect!


è come se scrivessi una parola in una pagina di un quaderno e poi volti pagina, non la leggi mica!

:-)

Riccardo D'Aria

gae58 Profilo | Senior Member

la richiesta era proprio questa.

C'è da precisare che uso il response per per far scaricare un file sul PC dell'Utente e non so se sia il modo migliore di usare questo comando.


Gaetano

ridaria Profilo | Expert

una cosa e certa se esci dalla pagina e vai in altra allora è nell'altra che devi fargli fare delle cose se non le ha fatte la pagina precedente.

Riccardo D'Aria

FrancescoGuadagno Profilo | Senior Member

Secondo me devi cambiare approccio... Se utilizzi il Response.Redirect, come dice giustamente Ridaria, stai cambiando il contesto di pagina, quindi a conti fatti le istruzioni successive alla redirect non verranno mai eseguite. Inoltre questo approccio ha un potenziale problema di sicurezza. Se utilizzi il Redirect per permettere un download, vuol dire che quel file è pubblicato in una directory virtuale, quindi chiunque potrebbe, conoscendo l'indirizzo, effettuare il download.
Il metodo più corretto è utilizzare una Response.WriteFile. Trovi decine di esempi on line. Inoltre non cambi pagina e il flusso di elaborazione dovrebbe poter continuare

gae58 Profilo | Senior Member

ciao ho provato quello che mi hai suggerito. Il dowLoad del file funziona bene, ma nacora non riesco a far proseguire la lettura del codice.
Response.WriteFile("../Public/" + Label1.Text.Trim() + ".csv");

...
Response.WriteFile("../Public/" + Label1.Text.Trim() + ".csv");
Response.End();

Response.Write("aaaaaaa");
...

ti ho postato le ultime rghe, ma il response.write non me lo esegue.

Sbaglio qualche altra cosa?

grazie

Gaetano

FrancescoGuadagno Profilo | Senior Member

Invece della Response.End() prova a fare una Response.Flush(). Poi fai la tua Response.write() e infine la End. Prova e fammi sapere
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5