Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Greške
  • Objekti Sesija, Aplikacija i Cache. Prazni prostori u skriptama

Objekti Sesija, Aplikacija i Cache. Prazni prostori u skriptama

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

Razor Syntax

Razor je lansiran kao nova sintaksa šablona sa uvođenjem ASP.NET Web Pages framework-a. U MVC 3 je dodat novi mehanizam za pregled koji koristi Razor. Razor omogućava miješanje koda na strani servera sa HTML oznakom za generiranje HTML odgovora koji okvir šalje pretraživaču. @sign ima četiri upotrebe u Razoru:

  • Za otvaranje bloka koda
  • Za označavanje inline izraza ili izraza
  • Za prikaz vrijednosti varijabli
  • Da biste prikazali pojedinačne redove 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 koji treba prikazati. Obično se nalaze na vrhu veb stranice ili prikaza i obično sadrže logiku za obradu stranice na veb stranicama ili jednostavne instrukcije specifične za prikaz u MVC-u. Blok koda počinje sa znakom @ nakon kojeg slijedi početna vitičasta zagrada, a završava sa završnom vitičastom zagradom:

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

Sadržaj unutar bloka koda je standardni C# kod. Česta greška je prefiks varijabli deklariranih unutar kodnog bloka sa znakom @. Ovo nije neophodno.

Inline izrazi ili izjave su isječci C# koda koji se pojavljuju unutar HTML-a. Najčešće se koriste za donošenje odluka o tome šta će se prikazati na osnovu uslova ili za ponavljanje kolekcija za prikaz u pretraživaču:

< ul >@foreach (var stavka u redovima) ( // uradi nešto)

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

< ul >@ foreach (var stavku u redovima) ( if (item.Equals(x)) ( // uradi nešto ) )

Osim ako nisu odvojeni od vanjskog izraza ili iskaza neusklađenim oznakama

< ul >@foreach (var stavku u redovima) (< li >@ if (item.Equals(x)) ( // uradi nešto ) )

Znak @ se koristi u Razoru za prikazivanje vrijednosti varijabli, izraza i iskaza u pretraživač:

@DateTime .Sada @(nekiUvjet ? x:y)

Promjenljive unutar izraza i iskaza ne bi trebale imati prefiks sa znakom @.

Ako želite da prikažete običan tekst ili neusklađene oznake dok ste unutar bloka izraza, koristite znak @ praćen dvotočkom da kažete Razoru da ono što slijedi nije C# kod:

@ if (stavka == x) // običan tekst ( @: vrijeme je @ DateTime .Now ) @ if (stavka == x) // neusklađene oznake ( @:< ul >) ostalo ( @:< ol >) Identifikatori

Identifikator u C# je ime dato imenskom prostoru, klasi, varijabli, svojstvu, metodi, interfejsu itd. Pravila regulišu šta čini validan identifikator. Dozvoljeno je koristiti C# ključnu riječ kao identifikator, ali ako to učinite, morate koristiti znak @ da biste spriječili greške u vremenu 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) prihvataju objekat koji predstavlja HTML atribute koji će biti prikazani kao deo oznake koju predstavlja pomoćnik. Sljedeći primjer dodaje atribut stila a unos teksta i postavlja svoju vrijednost na width:100%; :

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

kada to uradiš, ti si kreiranje anonimnog tipa sa svojstvom zvanim style za predstavljanje HTML atributa. Ako ti želiš da biste postavili atribut CSS klase putem ove metode, morate dodati svojstvo anonimnom tipu koji se zove class - što je C# ključna riječ. Stoga morate koristiti znak @ da omogućite korištenje klase u ovom slučaju:

@Html.TextBoxFor(model => model.FirstName, htmlAttributes: new ( @class = "full-width"))

Greška koju često ponavljam na ASP.NET forumima je primena znaka @ na sva druga svojstva anonimnog tipa, što jednostavno nije neophodno. Neki ljudi čak misle da je znak @ koji se ovdje koristi dio pravila sintakse Razor-a. Nije. Njegova upotreba ovdje je mnogo prethodila Razoru.

Doslovni string literali

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

var s = @"Hello World" ;

Dvije prednosti korištenja doslovnog string literala uključuju činjenicu da trebate samo pobjeći od dvostrukih navodnika (tako što ćete ih udvostručiti); a string može obuhvatiti više redova u kodu bez potrebe za znakovima za nastavak. Iz ovih razloga, doslovni literali stringova su najprikladniji za predstavljanje putanja (koje bi inače trebale izbjegavati njihove kose crte) i obrasce regularnog izraza (koji također mogu zahtijevati izbjegavanje obrnutih kosih crta).

Regex re = novi Regex (@"\w\d(1,3)\.\d(1,3)\.\d(1,3).\d(1,3)\w" );

Oni su također korisni za predstavljanje velikih blokova teksta ako ih treba uključiti u kod na čitljiv način, kao što su SQL izrazi koji 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 ukupni trošak OD detalja narudžbe o INNER JOIN Proizvodi p ON o.ProductID = p.ProductID WHERE o.OrderID = @0" ;

Upotreba znaka @ u ovom kontekstu još jednom nema nikakve veze sa Razor sintaksom.

Sažetak

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

Page class

Sada kada ste videli kakav je životni ciklus stranice i kako stranica sadrži kontrole, pomaže da se istakne da je sama stranica takođe instancirana kao kontrolni objekat. U stvarnosti, svi web obrasci su zapravo instance klase Page iz ASP.NET-a, koja se nalazi u imenskom prostoru System.Web.UI.

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

Mnoga od ovih svojstava odgovaraju internim objektima koji se mogu koristiti na klasičnim ASP.NET web stranicama. Međutim, u klasičnom ASP-u, ovoj funkcionalnosti se 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 narednim odjeljcima.

Objekti sesije, aplikacije i predmemorije

Objekt Session je instanca klase System.Web.SessionState.HttpSessionState. Dizajniran je za pohranjivanje bilo koje vrste korisničkih podataka koji moraju 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 se često koristi za održavanje informacija kao što su ime i ID korisnika, korpa za kupovinu ili druge stavke koje se brišu kada korisnik više ne posjećuje stranice web stranice.

Objekt Application je instanca klase System.Web.HttpApplicationState. Sviđa mi se objektu Session, to je također rečnik podataka sa imenima i vrijednostima. Međutim, ovi podaci su globalni za cijelu aplikaciju.

Što se tiče Cache objekta, on je instanca klase System.Web.Caching.Cache. Takođe pohranjuje globalne informacije, ali nudi skalabilniji mehanizam skladištenja jer ASP.NET može obrisati objekte ako serveru ponestane memorije. Kao i drugi skupovi stanja, to je u suštini kolekcija objekata nazivne vrijednosti, ali možete postaviti i prilagođene politike isteka i definirati zavisnosti za svaki element.

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

Objekat 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 koji se odnose na URL, kao i sve ostale podatke koje je klijent poslao. Veliki dio informacija koje pruža objekt Request je umotan u apstrakcije koje su više visoki nivo(na primjer, omotač modela ASP.NET Web Control), tako da nije ni približno toliko važan kao što je bio u klasičnom razvoju ASP-a.

Međutim, objekt Request se i dalje može koristiti, na primjer, da se sazna koji preglednik klijent koristi, ili da se kreiraju kolačići i zatim ispita njihov sadržaj.

Tabela ispod navodi neke od najčešće korištenih svojstava objekta Request:

Svojstva objekta HttpRequest 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 "stvarnog" direktorija
Pretraživač Pruža referencu na objekt HttpBrowserCapabilities, koji sadrži svojstva koja opisuju različite funkcije preglednika, kao što je podržava li elemente ActiveX kontrole, kolačići, VBScripts i okviri
ClientCertificate Objekt HttpClientCertificate koji daje sigurnosni certifikat za trenutni zahtjev, ako postoji
Kolačići Pruža kolekciju kolačića poslatih s ovim zahtjevom
FilePath i CurrentExecutionFilePath Vrati pravu putanju datoteke (u odnosu na server) za stranicu koja se trenutno izvršava. FilePath predstavlja stranicu koja je započela proces izvršavanja. Ovo je isto kao CurrentExecutionFilePath osim ako niste premjestili korisnika nova stranica bez preusmjeravanja (na primjer, korištenjem metode Server.Transfer()), u kom slučaju CurrentExecutionFilePath odražava novu stranicu, a FilePath specificira originalnu stranicu
Forma Predstavlja kolekciju varijabli obrasca poslanih nazad na stranicu. U većini slučajeva, umjesto da koristite datu kolekciju, ove informacije ćete dohvatiti iz svojstava kontrole
Zaglavlja i serverske varijable Navedite zbirku rječnika HTTP zaglavlja i serverskih varijabli, indeksiranih imenom. Ove kolekcije se uglavnom sastoje od informacija niskog nivoa koje je pregledač poslao zajedno s web zahtjevom (na primjer, informacije o tipu preglednika, funkcionalnosti koju podržava, jezičnim preferencama koje je postavio, identitetima koji se koriste za provjeru autentičnosti podataka, itd.). Obično je ove informacije mnogo lakše dobiti iz drugih svojstava objekta HttpRequest ili ASP.NET klasa višeg nivoa
IsAuthenticated i IsSecureConnection Vratite 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 objekat koji predstavlja adresu trenutne stranice i stranicu sa koje korisnik dolazi (prethodna stranica koja sadrži link do ove stranice)
UserAgent Niz koji predstavlja tip pretraživača. Internet Explorer daje MSIE vrijednost za ovo svojstvo. ASP.NET koristi ove informacije da otkrije o kakvom se tipu pretraživača radi mi pričamo o tome, a samim tim i da odredite koje funkcije ovaj pretraživač treba da podržava (kao što su kolačići, JavaScript, itd.). Ovo zauzvrat može uticati 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 se također može pristupiti kroz kolekciju ServerVariables. Međutim, zbog emitovanja mrežne adrese(Prevođenje mrežne adrese - NAT) nije uvijek značajno. Ovisno o tome kako se povezuju na Internet, mnogi klijenti mogu dijeliti istu IP adresu (na primjer, IP adresu računara mrežnog prolaza). Osim toga, IP adresa se također može promijeniti nakon izvršavanja nekoliko zahtjeva.
UserLanguages Pruža sortirani niz stringova koji navodi klijentove jezične postavke. Može biti korisno pri kreiranju višejezičnih stranica
Objekt odgovora

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

Serverske kontrole sada sadrže ugniježđene objektno orijentirane metode za prikazivanje. Programer treba samo postaviti vrijednosti svojih svojstava. Dakle, objekat Response nije ni približno tako centralan kao što je nekada bio.

Sljedeća tabela 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 (podrazumevano), stranica se ne šalje klijentu sve dok ne bude prikazana i spremna za slanje u cijelosti, umjesto da se šalje u dijelovima. U nekim specifičnim scenarijima ima smisla postaviti ovo svojstvo na false.
Najočigledniji primjer je kada klijent preuzme veliki fajl. Ako je svojstvo BufferOutput postavljeno na false, klijent će vidjeti dijaloški okvir Save i moći će odabrati ime datoteke prije nego što se datoteka potpuno preuzme
Skladiste Ovo svojstvo se odnosi na objekat HttpCachePolicy, koji vam omogućava da konfigurišete keširanje izlaza
Kolačići Ovo svojstvo omogućava pristup kolekciji kolačića koji se šalju zajedno s odgovorom. Može se koristiti za dodavanje dodatnih kolačića
Ističe i ističe apsolutno Ova svojstva se mogu koristiti za keširanje renderiranog HTML-a stranice, poboljšavajući performanse na sljedećim zahtjevima.
IsClientConnected Ovo je logička vrijednost koja pokazuje da li je klijent povezan sa serverom. Ako već nije povezan, možda ćete morati da zaustavite neku dugotrajnu operaciju
Preusmjeravanje() Ova metoda uzrokuje da pretraživač zatraži drugačiji URL koji upućuje na novu stranicu web aplikacije ili na drugu web stranicu
PreusmjeravanjePermanent() Ova metoda preusmjerava pretraživač na novi URL, slično kao i Redirect() metoda. Razlika je u tome što koristi kod HTTP stanja 301 (što ukazuje da je stranica trajno premještena) umjesto 302 (što ukazuje da je stranica privremeno premještena)
RedirectToRoute() i RedirectToRoutePermanent() Ove metode su slične metodama Redirect() i RedirectPermanent(). Jedina razlika je u tome što koriste rutu (registrirani URL obrazac koji se ne mapira direktno na stranicu)
Transfer() Ova metoda govori ASP.NET-u da zaustavi obradu trenutne stranice i pređe na novu (specificiranu) stranicu web obrasca. U ovom slučaju nije potreban potpuni ciklus slanja i obavještenje pretraživača i korisnika web aplikacije
TransferRequest() Ovaj metod je sličan Transfer(), ali vam omogućava da prebacite korisnika na drugu vrstu stranice. Na primjer, može se koristiti za slanje korisnika iz ASP.NET web obrasca na HTML stranicu.
Kada se koristi, cijeli IIS cevovod se dovodi u akciju za obradu novog resursa, zajedno sa svim povezanim HTTP modulima. Ali postoje brojna značajna ograničenja povezana sa TransferRequest() metodom. Da biste ga koristili, morate ga koristiti IIS web server 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 govori pretraživaču koju vrstu sadržaja treba da primi. Tipično, ASP.NET Web Forms, kao i sve web stranice, koriste tekst/html sadržaj (tekst pomiješan sa HTML-om). Međutim, u principu bi se mogao kreirati poseban HTTP rukovalac koji služi drugim vrstama sadržaja
OutputStream Ovo svojstvo predstavlja podatke koji se šalju pretraživaču kao tok bajtova niskog nivoa. Može se koristiti za povezivanje sa .NET modelom navoja
Pisati() Ova metoda vam omogućava da pišete tekst direktno u tok odgovora. Obično je bolje koristiti kontrolni model i pustiti kontrole da generiraju vlastite HTML oznake. Ako pokušate da koristite metodu Response.Write() sa kontrolnim modelom, programer gubi mogućnost da odluči gde tekst treba da ide na stranici.
Međutim, metoda Response.Write() je važna u situacijama kada se kontrole koje generiraju vlastitu HTML reprezentaciju moraju izgraditi od nule
BinaryWrite() i WriteFile() Ove metode vam omogućavaju da preuzmete binarni sadržaj iz niza bajtova ili datoteke i zapišete ga direktno u tok odgovora. Nema smisla koristiti ih zajedno sa serverskim kontrolama, ali mogu biti vrlo korisne kada se kreira prilagođeni HTTP rukovalac.
Na primjer, možete kreirati HTTP rukovalac koji čita podatke za PDF dokument iz unosa baze podataka i upisuje ih direktno u tok odgovora koristeći metodu BinaryWrite(). Na strani klijenta, krajnji rezultat će izgledati potpuno isto kao da je korisnik prenio statičnu PDF datoteku. Kada pišete sadržaj koji nije HTML, obavezno postavite svojstvo ContentType na odgovarajuću vrijednost
Krećite se između stranica

Najvažnija funkcija klase HttpResponse je da obezbijedi mali skup metoda koje vam omogućavaju navigaciju s jedne stranice na drugu. Najuniverzalniji od njih je Redirect() metoda, koja vam omogućava da preusmjerite korisnika na drugu stranicu. Ispod je primjer njegove primjene:

// Preusmjeravanje 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 slanja. U suštini, on šalje poruku pretraživaču koja ga navodi da zatraži novu stranicu.

Metoda Redirect() ima preopterećenje koje uzima logičku vrijednost kao svoj drugi parametar. Ova vrijednost određuje da li kod stranice treba nastaviti s izvršavanjem. Prema zadanim postavkama, iako Redirect() preusmjerava korisnika i zatvara vezu, svaki preostali kod u metodi će se i dalje izvršavati zajedno s ostalim događajima stranice. Ovo omogućava čišćenje ako je potrebno. Ali ako je drugi parametar tačan, ASP.NET će odmah prestati obraditi stranicu, potencijalno smanjujući radno opterećenje web servera.

Ako trebate prenijeti korisnika na drugi web obrazac unutar iste web aplikacije, možete uzeti brži pristup korištenjem metode Server.Transfer(). Međutim, ova metoda ima neke posebnosti. Budući da se preusmeravanje dešava na strani servera, originalni URL ostaje u prozoru klijentovog veb pretraživača. U suštini, pretraživač 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 stranici.

Za prelazak s jedne stranice na drugu, dostupna je još jedna tehnika - objavljivanje na više stranica. Omogućava vam da kreirate stranicu koja se šalje na drugu stranicu, što omogućava da prođete sve informacije o stanju prikaza i sadržaj bilo koje kontrole.

U ASP.NET 4, klasa HttpResponse uvela je još jednu metodu za preusmjeravanje korisnika - RedirectPermanent() . Ova metoda radi istu stvar kao Redirect(), tj. šalje preusmjeravajuću poruku pretraživaču u kojoj se navodi 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 pretraživače ova razlika nije bitna, ali za pretraživače je veoma važna. Kada robot za pretragu istražuje web stranicu i dobije statusni kod 301, ažurira svoj direktorij 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. Metodu Redirect() treba koristiti za pružanje normalne navigacije i kontrole toka u aplikaciji (na primjer, kada korisnik prolazi kroz neku vrstu procesa verifikacije), a metodu RedirectPermanent() treba koristiti kada se traži stari URL koji je bio prethodno podržan, ali se više ne koristi.

Obično će metoda Redirect() biti pozvana negdje u kodu web obrasca, dok će RedirectPermanent() metoda biti pozvana u kodu aplikacije, tačnije u metodi Application_BeginRequest() unutar datoteke global.asax. Ovo će vam omogućiti da upravljate svim svojim upornim preusmjeravanjem na jednom mjestu bez potrebe da čuvate zaglavlje za stare stranice. Ispod je primjer:

Zaštićeni 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.) )

Objekat servera

Objekat Server je instanca klase System.Web.HttpServerUtility i pruža razne pomoćne metode i svojstva koja su navedena u tabeli:

Članovi klase HttpServerUtility Opis metode ili svojstva
MachineName Svojstvo koje predstavlja ime računara na kojem je stranica pokrenuta. Ovo je naziv web servera koji koristi računar da ga identifikuje na ostatku mreže
GetLastError() Dohvaća objekt izuzetka za najnoviju grešku (ili nultu referencu ako ona ne postoji). Ova greška se trebala dogoditi tokom obrade trenutnog zahtjeva i nije obrađena. Najčešće se koristi u aplikaciji za rukovanje događajima koji provjerava situacije kvara
HtmlEncode() i HtmlDecode() Zamjenjuje normalni niz važećim stringom HTML znakovi(i obrnuto)
UrlEncode() i UrlDecode() Zamjenjuje običan niz nizom važećih URL znakova (i obrnuto)
MapPath() Vraća fizičku putanju do datoteke koja odgovara određenom virtuelni put u datoteku na web serveru. Pozivanje MapPath() sa / vraća fizičku putanju 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)
Transfer() Prenosi izvršenje na drugu web stranicu u trenutnu aplikaciju. Ova metoda je slična Response.Redirect(), ali je brža. Ne može se koristiti za premještanje korisnika na stranicu koja se nalazi na drugom web serveru 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 dolazi do potpunog ciklusa slanja. Umjesto toga, ASP.NET motor jednostavno učitava novu stranicu i počinje je obraditi. Kao rezultat toga, URL prikazan u pretraživaču klijenta se ne mijenja.

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

HTML i URL kodiranje

Klasa Server takođe sadrži metode koje pretvaraju regularne stringove u reprezentaciju koja se može bezbedno koristiti kao deo URL-a ili prikazati na veb stranici. Na primjer, recimo da ćete prikazati sljedeći tekst na web stranici:

Tag

Koristi se za označavanje paragrafa.

Ako pokušate da napišete ove informacije na stranici ili ih stavite u kontrolu, dobit ćete sljedeće:

Oznaka se koristi za identifikaciju pasusa.

Tekst

Neće se pojaviti, a pretraživač ga tumači kao da uključuje pasus. 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 ovu temu