Server.Transfer vs Response.Redirect
Server och Response båda är objekt i ASP.NET. Serverobjektet tillhandahåller metoder och egenskaper för olika uppgifter relaterade till en server. Överföring är en metod för Server-objektet och det skickar information om det aktuella tillståndet till en annan .asp-fil för bearbetning. Svarobjekt beskriver metoder och egenskaper som är relaterade till en serverns svar. Omdirigering är en metod för Response-objektet och det skickar ett meddelande till webbläsaren som gör det anslutet till en annan URL. Även om både Server.Transfer och Response.Redirect kan användas för att överföra en användare från en sida till en annan, skiljer de sig från hur de faktiskt utför den här uppgiften.
Vad är Response.Redirect?
Omdirigering är en metod i Response-objektet. När svarmetoden heter, skickar den HTTP-koden 302 och webbadressen till den begärda webbsidan till användarens webbläsare. HTTP-koden 302 informerar användarens webbläsare om att den begärda resursen är lokaliserad under en annan URL. När webbläsaren tar emot koden öppnas resursen på den nya platsen. Den begärda webbsidan kan ligga på samma server som den sida som innehöll begäran eller den kunde vara bosatt i någon annan server. När du begär en webbsida som är bosatt på samma server som den aktuella sidan kan svarmetoden användas enligt följande:
Response.Redirect ( ”nextPage.html”);
När du begär en webbsida som är bosatt på en annan server kan svarmetoden användas enligt följande:
Response.Redirect ( ”http://www.newServer.com/newPage.aspx”);
Vad är Server.Transfer?
Som tidigare nämnts är överföring en metod för Serverobjektet. När överföringsmetoden heter, ändras den ursprungliga begäran för att överföra till en annan sida på samma server. När en ny sida begärs med hjälp av Server.Transfer ändras inte webbadressen som visas i användarens webbläsare. Detta beror på att överföringen händer på serverns sida och webbläsaren har ingen kunskap om överföringen. Genom att använda den andra överbelastningen för Server.Transfer (strängväg, bool preserveForm) och inställning av den andra parametern som sann, kan formulärvariabler och frågesträngar ställas till förfogande för den andra sidan.
Vad är skillnaden mellan Server.Transfer och Response.Redirect?
Även om både Server.Transfer och Response.Redirect kan användas för att överföra en användare från en sida till en annan, finns det vissa skillnader mellan de två metoderna. Förutom den uppenbara synaktiska skillnaden gör Response.Redirect en rundtur till servern medan Server.Transfer ändrar webserverens fokus till en annan webbsida. Därför kan serverresurser bevaras genom att använda Server.Transfer. Å andra sidan kan Response.Redirect användas för att omdirigera användaren till en webbsida i en annan server medan Server.Transfer bara kan användas för att omdirigera användaren till webbsidor på samma server. Också genom att använda Server.Transfer kan egenskaper på föregående sida nås av den nya sidan, men detta är inte möjligt med Response.Redirect. Dessutom ändrar Response.Redirect URL-adressen i adressfältet i webbläsaren när den nya sidan är åtkomst, men när du använder Server.Transfer behålls den ursprungliga webbadressen och innehållet på sidan har just ersatts. Så användaren kan inte använda den för att bokmärke den nya sidan.