Server.Transfer vs Response.Redirect
Server og Response begge er objekter i ASP.NET. Serverobjekt gir metoder og egenskaper for ulike oppgaver relatert til en server. Overføring er en metode for Server-objektet, og det sender informasjon om gjeldende tilstand til en annen .asp-fil for behandling. Response-objekt beskriver metoder og egenskaper relatert til serverens respons. Omadressering er en metode for Response-objektet, og det sender en melding til nettleseren som gjør det tilkoblet en annen URL. Selv om både Server.Transfer og Response.Redirect kan brukes til å overføre en bruker fra en side til en annen, er de forskjellige i hvordan de faktisk utfører denne oppgaven.
Hva er Response.Redirect?
Viderekobling er en metode i Response-objektet. Når svarmetoden kalles, sender den HTTP-koden 302 og nettadressen til den forespurte nettsiden til brukerens nettleser. HTTP-koden 302 informerer brukerens nettleser om at den forespurte ressursen er plassert under en annen nettadresse. Når nettleseren mottar koden, åpner den ressursen på den nye plasseringen. Den forespurte nettsiden kan ligge på samme server som siden som inneholdt forespørselen, eller den kunne være bosatt i en annen server. Når du ber om en nettside som ligger på samme server som den gjeldende siden, kan svarmetoden brukes som følger:
Response.Redirect ( “nextPage.html”);
Når du ber om en nettside som er bosatt på en annen server, kan svarmetoden brukes som følger:
Response.Redirect ( “http://www.newServer.com/newPage.aspx”);
Hva er Server.Transfer?
Som nevnt tidligere er Overføring en metode for Serverobjektet. Når overføringsmetoden kalles, er den opprinnelige forespørselen endret for å overføre til en annen side på samme server. Når en ny side blir bedt om å bruke Server.Transfer, endres nettadressen som vises i brukerens nettleser, ikke. Dette skyldes at overføringen skjer på server siden, og nettleseren har ingen kunnskap om overføringen. Ved å bruke den andre overbelastningen for Server.Transfer (strengvei, bool preserveForm) og innstilling av den andre parameteren som sant, kan opprettede formvariabler og spørringsstrenger gjøres tilgjengelige for den andre siden.
Hva er forskjellen mellom Server.Transfer og Response.Redirect?
Selv om både Server.Transfer og Response.Redirect kan brukes til å overføre en bruker fra en side til en annen, er det noen forskjeller mellom de to metodene. Foruten den tilsynelatende syntaktiske forskjellen gjør Response.Redirect en rundtur til serveren, mens Server.Transfer endrer fokuset til webserveren til en annen nettside. Derfor, ved å bruke Server.Transfer, kan serverressurser bevares. På den annen side kan Response.Redirect brukes til å omdirigere brukeren til en nettside i en annen server, mens Server.Transfer kun kan brukes til å omdirigere brukeren til nettsider på samme server. Også ved å bruke Server.Transfer, kan egenskapene til den forrige siden nås av den nye siden, men dette er ikke mulig med Response.Redirect. I tillegg endrer Response.Redirect URL-adressen i adresselinjen til nettleseren når den nye siden er tilgjengelig, men når du bruker Server.Transfer, blir den opprinnelige nettadressen beholdt og innholdet på siden er nettopp erstattet. Så brukeren kan ikke bruke den til å bokmerke den nye siden.