Server.Trasferimento vs. Contesto.RewritePath

Ho capito che entrambi non modificare l’URL che vede il client. C’è qualcosa che le fa uno di loro preferibile rispetto all’altro?
Sto pensando di usarlo in Application_BeginRequest Globale.asax, ma anche nella normale pagina aspx.

InformationsquelleAutor Lea Cohen | 2008-12-03

 

3 Replies
  1. 9

    Penso Context.RewritePath() è l’opzione migliore.
    Motivo:

    Server.Transfer() lancia un ThreadAbortException ogni volta. Il risultato della chiamata Response.End().

    Per ulteriori dettagli, leggere il seguente MS articoli:

    Ulteriori Informazioni:

    Server.Transfer() non invia un reindirizzamento HTTP 302 comando come Response.Redirect() vorresti fare.

    Secondo HttpContext.RewritePath su MSDN, RewritePath() è utilizzato in stato sessione senza cookie.

    Anche, su un tema diverso, Server.Transfer() e Server.Execute() sono molto diversi:

    Server.Execute() restituisce il controllo alla pagina iniziale subito dopo, dove è stato chiamato.

    Per Esempio:

    <div>
        test 1 <br/>
        <% Server.Execute("include.aspx?hello=ok"); %>
        test 2 <br/>
    </div>

    Sarebbe uscita:

    test 1

    contenuto di includere.aspx?ciao=ok

    test 2

  2. 1

    Contesto.RewritePath Assegna un interno riscrivere percorso, e che permette l’URL richiesto a discostarsi dal percorso interno alla risorsa. RewritePath è utilizzato in stato sessione senza cookie.

    Mentre Il Server.trasferimento del contenuto assemblati per l’elaborazione di una pagina a un’altra .

  3. 1

    Per evitare l’eccezione generata dal Server.Il trasferimento, è possibile utilizzare il Server.Eseguire. Entrambi I Server.Il trasferimento e il Server.Eseguire NON è un problema 302 del messaggio HTTP. Solo La Risposta.Reindirizzare i problemi di questa intestazione e chiede al browser di andare verso la nuova destinazione, sostenendo che si era temporaneamente trasferito. Entrambi I Server.Il trasferimento e il Server.Eseguire consentono di eseguire una pagina diversa per il servizio di richiesta corrente.

Lascia un commento