Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Greške
  • Objekti sesije, aplikacije i predmemorije. Prazna mjesta u skriptama

Objekti sesije, aplikacije i predmemorije. Prazna mjesta u skriptama

Broj mjesta na kojima možete koristiti ili naići na znak @ u ASP.NET-u porastao je tijekom posljednjih nekoliko godina i čini se da njegova točna svrha u svim okolnostima još uvijek izaziva zabunu. Ovdje je pregled najčešćih mjesta na kojima se pojavljuje i upute za njegovu ispravnu upotrebu.

Razor Sintaksa

Razor je lansiran kao nova sintaksa za izradu predložaka uvođenjem okvira ASP.NET web stranica. U MVC 3 dodan je novi mehanizam za prikaz koji koristi Razor. Razor omogućuje miješanje koda na strani poslužitelja s HTML oznakama za generiranje HTML odgovora koji okvir šalje pregledniku. Znak @ ima četiri namjene u Razoru:

  • Za otvaranje bloka koda
  • Za označavanje umetnutog izraza ili izjave
  • Za prikaz vrijednosti varijabli
  • Za prikaz pojedinačnih redaka sadržaja koji sadrže običan tekst ili neusklađene HTML oznake

Blokovi koda su dijelovi C# koda koji ne uključuju nikakav izlaz za renderiranje. Obično se nalaze na vrhu web-stranice ili prikaza i obično sadrže logiku za obradu stranice na web-stranicama ili jednostavne upute specifične za prikaz u MVC-u. Blok koda počinje znakom @ iza kojeg slijedi otvarajuća vitičasta zagrada, a završava zatvarajućom vitičastom zagradom:

@( ViewBag.Title = "Uredi" ; Layout = "~/Views/Shared/_EditLayout.cshtml" ; } !}

Sadržaj unutar bloka koda je standardni C# kod. Uobičajena pogreška je da se varijablama deklariranim unutar bloka koda doda znak @. Ovo nije potrebno.

Umetnuti izrazi ili izjave isječci su C# koda koji se pojavljuju unutar HTML-a. Najčešće se koriste za donošenje odluka o tome što prikazati na temelju uvjeta ili za ponavljanje zbirki za prikaz u pregledniku:

< ul >@foreach (var item in rows) ( // učini nešto )

Ugniježđeni izrazi ili izjave ne počinju znakom @...

< ul >@ foreach (var item in rows) ( if (item.Equals(x)) ( // učini nešto ) )

Osim ako nisu odvojeni od vanjskog izraza ili izjave nepodudarnim oznakama

< ul >@foreach (promjena stavke u redovima) (< li >@ if (item.Equals(x)) ( // učini nešto ) )

@znak se koristi u Razoru za prikaz vrijednosti varijabli, izraza i iskaza pregledniku:

@DateTime .Now @(someCondition ? x:y )

Varijable unutar izraza i naredbi ne smiju imati ispred znak @.

Ako želite prikazati običan tekst ili neusklađene oznake dok ste unutar bloka iskaza, koristite znak @ iza kojeg slijedi dvotočka kako biste Razoru rekli da ono što slijedi nije C# kod:

@ if (item == x) // čisti tekst ( @: Vrijeme je @ DateTime .Now ) @ if (item == x) // nepodudarne oznake ( @:< ul >) inače ( @:< ol >) Identifikatori

Identifikator u C# je ime dano prostoru imena, klasi, varijabli, svojstvu, metodi, sučelju itd. Pravila određuju što čini važeći identifikator. Dopušteno je koristiti C# ključnu riječ kao identifikator, ali ako to učinite, morate koristiti znak @ kako biste spriječili pogreške tijekom kompajliranja. Savjetujemo vam da ne koristite ključnu riječ kao identifikator, ali postoje trenuci kada to ne možete izbjeći.

Neka preopterećenja klasa HtmlHelper (Web stranice i MVC) prihvaćaju objekt koji predstavlja HTML atribute koji se prikazuju kao dio oznake koju predstavlja pomoćnik. Sljedeći primjer dodaje atribut stila a unos teksta i postavlja svoju vrijednost na width:100%; :

@Html.TextBoxFor(model => novo ( style = "width:100%;" ))

Kada ovo učiniš, ti si stvaranje anonimnog tipa sa svojstvom zvanim style za predstavljanje HTML atributa. Ako ti želiš da biste postavili CSS atribut klase putem ove metode, trebate dodati svojstvo anonimnom tipu pod nazivom klasa - što je C# ključna riječ. Stoga morate koristiti znak @ da biste omogućili korištenje klase u ovom slučaju:

@Html.TextBoxFor(model => model.FirstName, htmlAtributi: novo ( @class = "puna širina"))

Pogreška koju često ponavljam na ASP.NET forumima je primjena znaka @ na sva druga svojstva anonimnog tipa, što jednostavno nije potrebno. Neki ljudi čak misle da je znak @ koji se ovdje koristi dio pravila Razor sintakse. Nije. Njegova je uporaba ovdje mnogo prije Razora.

Doslovni string literali

Doslovni string literal u C# sastoji se od znaka @ iza kojeg slijedi literalni niz u dvostrukim navodnicima i završava točkom-zarezom, npr.

var s = @"Hello World" ;

Dvije prednosti korištenja verbatim string literala uključuju činjenicu da samo trebate izbjeći dvostruke navodnike (njihovim udvostručenjem); a niz može obuhvaćati više redaka u kodu bez potrebe za znakovima za nastavak. Iz ovih razloga, doslovni string literali su najprikladniji za predstavljanje staza (koje bi inače trebale izbjeći svoje kose crte) i obrasce regularnih izraza (koji također mogu zahtijevati da se obrnute kose crte izbjegnu).

Regularni izraz re = novi regularni izraz (@"\w\d(1,3)\.\d(1,3)\.\d(1,3).\d(1,3)\w" );

Također su korisni za predstavljanje velikih blokova teksta ako ih je potrebno uključiti u kod na čitljiv način, kao što su SQL naredbe koje se mogu koristiti u aplikacijama web stranica:

var sql = @"SELECT p.ProductName, o.UnitPrice, o.Quantity, (o.UnitPrice * o.Quantity) - (o.UnitPrice * o.Quantity * o.Discount) Kao TotalCost FROM OrderDetails o INNER JOIN Proizvodi p ON o.ID proizvoda = p.ID proizvoda WHERE o.ID narudžbe = @0" ;

Upotreba znaka @ u ovom kontekstu opet nema nikakve veze sa sintaksom Razora.

Sažetak

Ako ste se ikada zapitali kada i gdje biste trebali koristiti znak @ u svom ASP.NET kodu, nadamo se da je ovaj članak pomogao riješiti vašu zabunu.

Klasa stranice

Sada kada ste vidjeli što je životni ciklus stranice i kako stranica sadrži kontrole, pomaže istaknuti da je sama stranica također instancirana kao kontrolni objekt. U stvarnosti su svi web obrasci zapravo instance klase Page iz ASP.NET-a, koja se nalazi u prostoru imena System.Web.UI.

Vjerojatno ste ovo već pogodili primijetivši da svaka klasa koja stoji iza koda jasno nasljeđuje System.Web.UI.Page. To znači da svaki web obrazac koji izradite odmah dobiva ogromnu količinu funkcionalnosti, kao što je prethodno viđena metoda FindControl() i svojstvo IsPostBack. Osim toga, nasljeđivanje od Page također vašem kodu daje pristup sljedećim izuzetno korisnim svojstvima:

Mnoga od ovih svojstava odgovaraju internim objektima koji se mogu koristiti u klasičnim ASP.NET web stranicama. Međutim, u klasičnom ASP-u ovoj se funkcionalnosti pristupalo preko ugrađenih objekata koji su uvijek bili dostupni. U ASP.NET-u, svaki od ovih ugrađenih objekata zapravo odgovara svojstvu Page, koje pruža instancu potpuno funkcionalne klase.

Ovi objekti su detaljnije opisani u sljedećim odjeljcima.

Objekti sesije, aplikacije i predmemorije

Objekt Sesije je instanca klase System.Web.SessionState.HttpSessionState. Dizajniran je za pohranjivanje bilo koje vrste korisničkih podataka koji trebaju postojati između zahtjeva web stranice. Objekt Session pruža pristup rječniku skupu parova ime-vrijednost koji predstavljaju korisničke podatke za tu sesiju. Stanje sesije često se koristi za održavanje informacija kao što su korisničko ime i ID, košarica za kupnju ili druge stavke koje se brišu kada korisnik više ne posjećuje stranice web-mjesta.

Application objekt je instanca klase System.Web.HttpApplicationState. Kao objektu Sesije, to je također rječnik podataka ime-vrijednost. Međutim, ti su podaci globalni za cijelu aplikaciju.

Što se tiče Cache objekta, on je instanca klase System.Web.Caching.Cache. Također pohranjuje globalne informacije, ali nudi skalabilniji mehanizam za pohranu jer ASP.NET može brisati objekte ako poslužitelju ponestane memorije. Kao i drugi skupovi stanja, to je u biti zbirka objekata ime-vrijednost, ali također možete postaviti prilagođena pravila isteka i definirati ovisnosti za svaki element.

Odabir načina implementacije upravljanja stanjem jedan je od ključnih zadataka u razvoju web aplikacije.

Objekt zahtjeva

Objekt Request je instanca klase System.Web.HttpRequest. Ovaj objekt predstavlja vrijednosti i svojstva HTTP zahtjeva koji je rezultirao učitavanjem stranice. Sadrži sve parametre vezane uz URL, kao i sve ostale podatke koje je poslao klijent. Velik dio informacija koje pruža Request objekt umotan je u apstrakcije koje su više visoka razina(na primjer, omot ASP.NET Web Control Model), tako da nije ni približno toliko važan kao što je bio u klasičnom ASP razvoju.

Međutim, objekt Zahtjev još uvijek se može koristiti, na primjer, da biste saznali koji preglednik klijent koristi ili da biste stvorili kolačiće i zatim ispitali njihov sadržaj.

Tablica u nastavku navodi neka od najčešće korištenih svojstava objekta Request:

Svojstva HttpRequest objekta Opis nekretnine
AnonymousID Jedinstveno identificira trenutnog korisnika ako je omogućen anonimni pristup.
ApplicationPath i PhysicalApplicationPath ApplicationPath dohvaća informacije o lokaciji virtualnog direktorija (URL) ASP.NET aplikacije, a PhysicalPath dohvaća informacije o lokaciji svog "pravog" direktorija
preglednik Pruža referencu na objekt HttpBrowserCapabilities, koji sadrži svojstva koja opisuju razne funkcije preglednika, kao što je podržava li elemente ActiveX kontrole, kolačići, VBScriptovi i okviri
Certifikat klijenta Objekt HttpClientCertificate koji daje sigurnosni certifikat za trenutni zahtjev, ako postoji
Kolačići Omogućuje zbirku kolačića poslanih uz ovaj zahtjev
FilePath i CurrentExecutionFilePath Vrati pravi put datoteke (u odnosu na poslužitelj) za stranicu koja se trenutno izvodi. FilePath predstavlja stranicu koja je započela proces izvršenja. Ovo je isto što i CurrentExecutionFilePath osim ako niste premjestili korisnika na nova stranica bez preusmjeravanja (na primjer, pomoću metode Server.Transfer()), u kojem slučaju CurrentExecutionFilePath odražava novu stranicu, a FilePath navodi izvornu stranicu
Oblik Predstavlja zbirku varijabli obrasca poslanih natrag na stranicu. U većini slučajeva, umjesto korištenja dane zbirke, te ćete informacije dohvatiti iz svojstava kontrole
Zaglavlja i varijable poslužitelja Pružite rječničku zbirku HTTP zaglavlja i poslužiteljskih varijabli, indeksiranih po imenu. Te se zbirke uglavnom sastoje od informacija niske razine koje je preglednik poslao zajedno s web-zahtjevom (na primjer, informacije o vrsti preglednika, funkcionalnosti koju podržava, jezičnim postavkama koje je postavio, identitetima koji se koriste za provjeru autentičnosti podataka, itd.). Obično je ove informacije puno lakše dobiti iz drugih svojstava HttpRequest objekta ili ASP.NET klasa više razine
IsAuthenticated i IsSecureConnection Vrati true ako je korisnik uspješno autentificiran i korisnik je povezan putem protokola Secure Sockets Layer (SSL).
IsLocal Vraća true ako korisnik zatraži stranicu s lokalnog računala
QueryString Pruža parametre proslijeđene u nizu upita
Url i UrlReferrer Vrati Uri objekt koji predstavlja adresu trenutne stranice i stranicu s koje korisnik dolazi (prethodna stranica koja sadrži vezu na ovu stranicu)
Korisnički agent Niz koji predstavlja vrstu preglednika. Internet Explorer pruža MSIE vrijednost za ovo svojstvo. ASP.NET koristi ove informacije kako bi otkrio koja je to vrsta preglednika govorimo o, a time i za određivanje funkcionalnosti koje ovaj preglednik treba podržavati (kao što su kolačići, JavaScript itd.). To zauzvrat može utjecati na način na koji se web kontrole prikazuju.
UserHostAddress i UserHostName Dohvaća informacije o IP adresi i DNS imenu udaljenog klijenta. Ovim informacijama također se može pristupiti kroz kolekciju ServerVariables. Međutim, zbog emitiranja mrežne adrese(Prijevod mrežne adrese - NAT) nije uvijek značajan. Ovisno o tome kako se spajaju na Internet, mnogi klijenti mogu dijeliti istu IP adresu (na primjer, IP adresu računala pristupnika). Osim toga, IP adresa se također može promijeniti nakon izvršavanja nekoliko zahtjeva.
Korisnički jezici Pruža sortirani niz nizova koji navodi klijentove jezične postavke. Može biti korisno pri izradi višejezičnih stranica
Objekt odgovora

Objekt Response je instanca klase System.Web.HttpResponse i predstavlja odgovor web poslužitelja na zahtjev klijenta. U klasičnom razvoju ASP-a, objekt Response bio je jedini način da se programski pošalje HTML tekst klijentu.

Kontrole poslužitelja sada sadrže ugniježđene objektno orijentirane metode koje se same prikazuju. Programer treba samo postaviti vrijednosti svojih svojstava. Dakle, objekt Response nije ni približno središnji kao što je nekada bio.

Sljedeća tablica navodi neke od najčešće korištenih članova klase HttpResponse:

Članovi klase HttpResponse Opis metode ili svojstva
BufferOutput Kada je ovo svojstvo postavljeno na true (zadano), stranica se ne šalje klijentu sve dok se ne renderira i bude spremna za slanje u cijelosti, umjesto da se šalje u dijelovima. U nekim specifičnim scenarijima ima smisla postaviti ovo svojstvo na lažno.
Najočitiji primjer je kada klijent preuzme veliku datoteku. Ako je svojstvo BufferOutput postavljeno na false, klijent će vidjeti dijaloški okvir za spremanje i moći će odabrati naziv datoteke prije nego što se datoteka u potpunosti preuzme
Predmemorija Ovo se svojstvo odnosi na objekt HttpCachePolicy, koji vam omogućuje konfiguriranje predmemoriranja izlaza
Kolačići Ovo svojstvo omogućuje pristup zbirci kolačića koji se šalju zajedno s odgovorom. Može se koristiti za dodavanje dodatnih kolačića
Istječe i Istječe Apsolutno Ova se svojstva mogu koristiti za spremanje u predmemoriju prikazanog HTML-a stranice, poboljšavajući izvedbu na sljedećim zahtjevima.
IsClientConnected Ovo je Booleova vrijednost koja pokazuje je li klijent povezan s poslužiteljem. Ako već nije spojen, možda ćete morati zaustaviti neku dugotrajnu operaciju
Preusmjeri() Ova metoda uzrokuje da preglednik zatraži drugačiji URL koji upućuje na novu stranicu web aplikacije ili na drugu web stranicu
RedirectPermanent() Ova metoda preusmjerava preglednik na novi URL, slično kao metoda Redirect(). Razlika je u tome što koristi kod HTTP stanja 301 (što označava da je stranica trajno premještena) umjesto 302 (što označava da je stranica privremeno premještena)
RedirectToRoute() i RedirectToRoutePermanent() Ove su metode slične metodama Redirect() i RedirectPermanent(). Jedina razlika je u tome što koriste rutu (registrirani URL uzorak koji se ne preslikava izravno na stranicu)
Prijenos() Ova metoda govori ASP.NET-u da zaustavi obradu trenutne stranice i prijeđe na novu (određenu) stranicu web obrasca. U tom slučaju nije potreban puni ciklus slanja i obavijest preglednika i korisnika web aplikacije
TransferRequest() Ova je metoda slična Transfer(), ali vam omogućuje prijenos korisnika na drugu vrstu stranice. Na primjer, može se koristiti za slanje korisnika s ASP.NET web obrasca na HTML stranicu.
Kada se koristi, cijeli IIS cjevovod se pokreće za obradu novog resursa, zajedno sa svim povezanim HTTP modulima. Ali postoji niz značajnih ograničenja povezanih s metodom TransferRequest(). Za korištenje mora se koristiti IIS web poslužitelj 7 u integriranom načinu rada. Osim toga, morat ćete otpustiti stanje sesije (ako je stečeno) kako biste spriječili duga kašnjenja
ContentType Ovo svojstvo predstavlja zaglavlje koje pregledniku govori kakvu vrstu sadržaja treba primiti. Tipično, ASP.NET Web Forms, kao i sve web stranice, koriste tekstualni/html sadržaj (tekst pomiješan s HTML-om). Međutim, u načelu bi se mogao stvoriti poseban HTTP rukovatelj za posluživanje drugih vrsta sadržaja
OutputStream Ovo svojstvo predstavlja podatke koji se šalju pregledniku kao tok bajtova niske razine. Može se koristiti za spajanje na .NET threading model
Pisati() Ova metoda omogućuje pisanje teksta izravno u tok odgovora. Obično je bolje koristiti kontrolni model umjesto toga i pustiti kontrole da generiraju svoje vlastite HTML oznake. Ako pokušate upotrijebiti metodu Response.Write() s kontrolnim modelom, programer gubi mogućnost odlučivanja gdje bi tekst trebao ići na stranici.
Međutim, metoda Response.Write() važna je u situacijama kada se kontrole koje generiraju vlastiti HTML prikaz moraju izgraditi ispočetka
BinaryWrite() i WriteFile() Ove metode vam omogućuju da uzmete binarni sadržaj iz niza bajtova ili datoteke i zapišete ga izravno u tok odgovora. Nema smisla koristiti ih u kombinaciji s kontrolama poslužitelja, ali mogu biti vrlo korisni pri stvaranju prilagođenog HTTP rukovatelja.
Na primjer, možete stvoriti HTTP rukovatelj koji čita podatke za PDF dokument iz unosa baze podataka i piše ih izravno u tok odgovora pomoću metode BinaryWrite(). Na strani klijenta, krajnji rezultat će izgledati potpuno isto kao da je korisnik učitao statičnu PDF datoteku. Kada pišete sadržaj koji nije HTML, svakako postavite svojstvo ContentType na odgovarajuću vrijednost
Krećite se između stranica

Najvažnija funkcija klase HttpResponse je pružanje malog skupa metoda koje vam omogućuju navigaciju s jedne stranice na drugu. Najuniverzalniji od njih je metoda Redirect(), koja vam omogućuje preusmjeravanje korisnika na drugu stranicu. Ispod je primjer njegove primjene:

// Preusmjeri na datoteku u trenutnom direktoriju. Response.Redirect("PageFlow.aspx"); // Preusmjeravanje na drugu web stranicu. Response.Redirect("http://www.google.com");

Metoda Redirect() zahtijeva puni ciklus otpreme. U biti, šalje poruku pregledniku zbog koje traži novu stranicu.

Metoda Redirect() ima preopterećenje koje uzima Booleovu vrijednost kao drugi parametar. Ova vrijednost određuje treba li kod stranice nastaviti s izvođenjem. Prema zadanim postavkama, iako Redirect() preusmjerava korisnika i zatvara vezu, sav preostali kod u metodi i dalje će se izvršavati zajedno s ostatkom događaja na stranici. To omogućuje čišćenje ako je potrebno. Ali ako je drugi parametar istinit, ASP.NET će odmah zaustaviti obradu stranice, potencijalno smanjujući radno opterećenje web poslužitelja.

Ako trebate prenijeti korisnika na drugi web obrazac unutar iste web aplikacije, možete pristupiti brže korištenjem metode Server.Transfer(). Međutim, ova metoda ima neke osobitosti. Budući da se preusmjeravanje događa na strani poslužitelja, izvorni URL ostaje u prozoru web preglednika klijenta. U biti, preglednik nema načina da zna da zapravo prikazuje drugu stranicu. Ovo ograničenje uzrokuje probleme kada klijent osvježi ili označi stranicu.

Dodatno, metoda Server.Transfer() ne može prenijeti kontrolu na stranicu koja nije ASP.NET ili web stranicu koja se nalazi u drugoj web aplikaciji ili web mjestu.

Za prelazak s jedne stranice na drugu dostupna je još jedna tehnika - objavljivanje na više stranica. Omogućuje vam stvaranje stranice koja se sama šalje na drugu stranicu, omogućujući prosljeđivanje svih informacija o stanju pogleda i sadržaja svih kontrola.

U ASP.NET 4, klasa HttpResponse uvela je još jednu metodu za preusmjeravanje korisnika - RedirectPermanent() . Ova metoda radi isto što i Redirect(), tj. šalje poruku za preusmjeravanje pregledniku pokazujući da treba zatražiti novu stranicu. Međutim, umjesto HTTP statusnog koda 302 (privremeno preusmjeravanje), koristi se kod 301 (koji označava trajno preusmjeravanje). Za web preglednike ova razlika nije bitna, ali za tražilice je vrlo važna. Kada robot za pretraživanje istražuje web mjesto i dobiva statusni kod 301, ažurira svoj imenik pretraživač, ispunjavajući ga informacijama o novom URL-u.

To znači da se metode Redirect() i RedirectPermanent() moraju koristiti na vrlo različite načine. Metoda Redirect() trebala bi se koristiti za pružanje normalne navigacije i kontrole tijeka u aplikaciji (na primjer, kada korisnik prolazi kroz neku vrstu postupka provjere), a metoda RedirectPermanent() trebala bi se koristiti kada se traži stari URL koji je prethodno podržan ali se više ne koristi.

Obično će se metoda Redirect() pozvati negdje u kodu web obrasca, dok će se metoda RedirectPermanent() pozvati u kodu aplikacije, točnije u metodi Application_BeginRequest() unutar datoteke global.asax. To će vam omogućiti da upravljate svim svojim trajnim preusmjeravanjima na jednom mjestu bez potrebe da čuvate dopune za stare stranice. Dolje je primjer:

Protected void Application_BeginRequest(object sender, EventArgs e) ( // Web aplikacija više ne sadrži about.aspx stranicu if (Reguest.FilePath == "/about.aspx") ( Response.RedirectPermanent("/about/about-Us) . aspx"); ) // (Ovdje dodajte dodatna preusmjeravanja.) )

Objekt poslužitelja

Objekt Server je instanca klase System.Web.HttpServerUtility i pruža niz pomoćnih metoda i svojstava, koji su navedeni u tablici:

Članovi klase HttpServerUtility Opis metode ili svojstva
Naziv stroja Svojstvo koje predstavlja naziv računala na kojem je stranica pokrenuta. Ovo je naziv web poslužitelja koji koristi računalo za njegovu identifikaciju ostatku mreže
GetLastError() Dohvaća objekt iznimke za najnoviju pogrešku (ili nultu referencu ako ne postoji). Ova se pogreška trebala pojaviti tijekom obrade trenutnog zahtjeva i nije obrađena. Najčešće se koristi u rukovatelju aplikacijskim događajima koji provjerava situacije kvara
HtmlEncode() i HtmlDecode() Zamjenjuje normalni niz važećim nizom HTML znakova(i obrnuto)
UrlEncode() i UrlDecode() Zamjenjuje uobičajeni niz s nizom važećih URL znakova (i obrnuto)
MapPath() Vraća fizički put do datoteke koja odgovara određenom virtualni put u datoteku na web poslužitelju. Pozivanje MapPath() s / vraća fizički put do korijenskog direktorija web aplikacije. Također podržava staze koje sadrže znak tilde (~) koji predstavlja korijenski direktorij web stranice (na primjer, ~/homepage.aspx)
Prijenos() Prebacuje izvršenje na drugu web stranicu u trenutna primjena. Ova je metoda slična Response.Redirect(), ali je brža. Ne može se koristiti za premještanje korisnika na web mjesto koje se nalazi na drugom web poslužitelju ili na stranicu koja nije ASP.NET (kao što je HTML ili ASP)

Metoda Transfer() je najviše na brz način premještanje korisnika na drugu stranicu aplikacije. Kada koristite ovu metodu, ne događa se potpuni ciklus slanja. Umjesto toga, ASP.NET mehanizam jednostavno učitava novu stranicu i počinje je obrađivati. Kao rezultat toga, URL prikazan u pregledniku klijenta se ne mijenja.

MapPath() je još jedna korisna metoda objekta Server. Na primjer, pretpostavimo da želite učitati datoteku pod nazivom info.txt iz trenutnog virtualnog direktorija. Umjesto tvrdog kodiranja staze, možete koristiti metodu Server.MapPath() za pretvaranje relativne staze do vaše web aplikacije u punu fizičku stazu.

HTML i URL kodiranje

Klasa poslužitelja također sadrži metode koje pretvaraju obične nizove u prikaz koji se može sigurno koristiti kao dio URL-a ili prikazati na web stranici. Na primjer, recimo da ćete prikazati sljedeći tekst na web stranici:

Označiti

Koristi se za označavanje odlomka.

Ako pokušate napisati ove podatke na stranici ili ih postaviti u kontrolu, dobit ćete sljedeće:

Oznaka se koristi za identifikaciju odlomka.

Tekst

Neće se pojaviti, a preglednik ga tumači kao da uključuje odlomak. Da biste zaobišli ovo automatsko ponašanje, morat ćete pretvoriti potencijalne problematične vrijednosti u posebne HTML ekvivalente. Na primjer,< превратится в < в окончательной HTML-странице, а браузер отобразит этот символ как

Najbolji članci na temu