Server. Perdavimas ir atsakymas. Peradresuoti
Serveris ir „Response“yra objektai ASP. NET. Serverio objektas pateikia įvairių užduočių, susijusių su serveriu, metodus ir ypatybes. Perkėlimas yra serverio objekto metodas ir jis siunčia dabartinės būsenos informaciją į kitą.asp failą apdoroti. Atsakymo objektas apibūdina metodus ir ypatybes, susijusias su serverio atsaku. Peradresavimas yra objekto Atsakymas metodas ir jis siunčia pranešimą naršyklei, kad ji prisijungtų prie kito URL. Nors tiek „Server. Transfer“, tiek „Response. Redirect“gali būti naudojami vartotojui perkelti iš vieno puslapio į kitą, jie skiriasi tuo, kaip jie iš tikrųjų atlieka šią užduotį.
Kas yra „Response. Rerirect“?
Peradresavimas yra metodas objekte Atsakymas. Kai iškviečiamas atsakymo metodas, jis siunčia HTTP kodą 302 ir prašomo tinklalapio URL vartotojų naršyklei. HTTP kodas 302 informuoja vartotojų naršyklę, kad prašomas išteklius yra kitame URL. Kai naršyklė gauna kodą, ji atidaro šaltinį naujoje vietoje. Prašomas tinklalapis gali būti tame pačiame serveryje, kuriame yra užklausa, arba kitame serveryje. Prašant tinklalapio, esančio tame pačiame serveryje, kaip ir dabartinis puslapis, atsakymo metodą galima naudoti taip:
Response. Redirect („nextPage.html“);
Prašant tinklalapio, esančio kitame serveryje, atsakymo metodą galima naudoti taip:
„Response. Redirect“(„https://www.newServer.com/newPage.aspx“);
Kas yra „Server. Transfer“?
Kaip minėta anksčiau, perkėlimas yra serverio objekto metodas. Kai iškviečiamas perdavimo metodas, pradinė užklausa modifikuojama, kad būtų perkelta į kitą tą patį serverį. Kai naudojant serverį prašoma naujo puslapio, perkelkite, vartotojo žiniatinklio naršyklėje rodomas URL nesikeičia. Taip yra todėl, kad perdavimas vyksta serverio pusėje ir naršyklė neturi jokių žinių apie perkėlimą. Naudojant antrą serverio perkrovą. Perkelti (eilutės kelias, „Bool keepForm“) ir nustatyti antrąjį parametrą kaip teisingą, antrame puslapyje galima pateikti paskelbtus formos kintamuosius ir užklausos eilutes.
Kuo skiriasi „Server. Transfer“ir „Response. Redirect“?
Nors tiek „Server. Transfer“, tiek „Response. Redirect“gali būti naudojami perkeliant vartotoją iš vieno puslapio į kitą, tarp šių dviejų metodų yra keletas skirtumų. Be akivaizdaus sintaksinio skirtumo, „Response. Redirect“į abi puses nukreipia serverį, o „Server. Transfer“keičia žiniatinklio serverio dėmesį į kitą tinklalapį. Todėl naudojant „Server. Transfer“galima išsaugoti serverio išteklius. Kita vertus, „Response. Redirect“gali būti naudojamas vartotojui nukreipti į tinklalapį kitame serveryje, o „Server. Transfer“gali būti naudojamas tik vartotojui nukreipti į to paties serverio tinklalapius. Be to, naudojant „Server. Transfer“, ankstesnio puslapio ypatybes galima pasiekti naujame puslapyje, tačiau tai nėra įmanoma naudojant „Response. Redirect“. Be to, atsakymas. Nukreipiant pakeičiamas URL naršyklės adreso juostoje, kai pasiekiamas naujas puslapis, bet naudojant serverį. Perkelkite pirminį URL ir puslapio turinys tiesiog pakeičiamas. Taigi vartotojas negali jo naudoti norėdamas pažymėti naują puslapį.