Megjeleníti az áruk listáját. Az elszámoltathatóság visszavonhatatlan

Teljesen létrehozhatunk egy tartománymodellt és egy tárhelyet, anélkül, hogy befolyásolnánk az UI projektet. De így nem unatkozik, megváltoztatjuk a kurzust, és elkezdjük az MVC keret teljes erővel történő használatát. Új funkciókat adunk hozzá a modellben és a tároláshoz szükséges.

Ebben a részben létrehozunk egy vezérlő- és cselekvési módszert, amely információkat jelenít meg az árukról a tárolóban. Jelenleg csak a szimulált tárolóban van adat, de később megoldjuk ezt a kérdést. A kezdeti beállításokat is elvégezzük. Útválasztási konfigurációkAnnak érdekében, hogy az MVC ismert, hogyan kell megjeleníteni az alkalmazási kérelmeket az adatkezelőnek, amelyet létrehozunk.

Add hozzá a vezérlőt

Kattintson a jobb gombbal a SportsStore.webui projekt vezérlők mappájára, és válassza a Hozzáadás vezérlőt a helyi menüben. Adja meg a vezérlő neve ProductController, és győződjön meg róla, hogy a sablon opció üres vezérlőt tartalmaz. Ha a Visual Studio megnyitja a fájlt szerkeszteni, törölheti az alapértelmezett műveleti módszert, amelyet automatikusan hozzáadott, és a fájl a 7-6.

7-6. Lista: A termékkontroller elsődleges definíciója
rendszer használata; System.Collections.Genic használata; A system.linq használata; System.web használata; A system.web.mvc használatával; Sportstore.domain.abrestract; sportstore.domain.entitities használatával; Namespace Sportstore.weBui.controllerers (nyilvános osztálytermékkontroller: vezérlő (privát iproductrepository replitroller (iproductrepository prodroller) (this.repository \u003d productrepossitory;))

Az indexelési módszer eltávolítása, hozzáadunk egy tervezőt, amely elfogadja az iProductrepository paramétert. Ez lehetővé teszi a Ninject számára, hogy az árutartomány függvényét alkalmazzák, amikor létrehozza a vezérlőosztály példányát. Mi is importált sportstore.domain névterek, így elérhetjük az adattárat és a modell osztályokat anélkül, hogy rámutatnánk a nevüket.

7-7-es lista: Művelet mód hozzáadása
rendszer használata; System.Collections.Genic használata; A system.linq használata; System.web használata; A system.web.mvc használatával; Sportstore.domain.abrestract; sportstore.domain.entitities használatával; Namespace Sportsstore.Webui.Controllers (public class ProductController: Controller (Public ProductController; Public ProductController (iProductRepository \u003d ProductRepository;) nyilvános ViewResult List () (visszatérő nézet (repository.products);) } }

Ilyen hívás a nézet módszerre (a névnév megadása nélkül) megmondja a platformot, hogy vizualizálja az alapértelmezett ábrázolást e cselekvési módszerhez. A lista lista termékobjektuma után a nézet módszere szerint a platformadatok biztosítjuk a modellobjektumot szigorúan beírt nézetben.

Képviselet hozzáadása

Most hozzá kell adnunk egy alapértelmezett nézetet a lista műveleti módszerhez. Kattintson a jobb gombbal a LIST módszer a kód szerkesztő és válassza az Add - Részletek a helyi menüben. Adja meg a lista nevét, és ellenőrizze, amely szigorúan beírt nézetet hoz létre, amint azt a 7-5. Ábra mutatja.

7-5. Ábra: Lista megjelenítése hozzáadása

A Modell osztály mezőben adja meg az eenumerable-t . Ezt a nevet kell kinyomtatnia; Nem lesz elérhető a legördülő listából, amely nem tartalmazza a tartományi objektumok átadását.

A jövőben a Standard Razor elrendezést fogjuk használni, amely az alapvető projekt sablonban szerepel, hogy nézeteink egyenletesen nézzenek ki. Ellenőrizze az Elrendezési opció jelölőnégyzetet, de hagyja üresen a szövegmezőt, amint az az ábrán látható. A nézet létrehozásához kattintson a Hozzáadás gombra.

Megjelenítjük a prezentáció adatait

Tudván, hogy a bemutatás modellje elindítható Létrehozhatunk egy listát a borotva foreach ciklusával, amint azt a 7-8.

7-8. Lista: Lista.cshtml ábrázolás
@Model eleumerable. @ (Viewbag.title \u003d "(! Lang: Termékek"; } !} @Foreach (var p modell) (

@ P.Name.

@ P.Description.

@ p.price.Tostring ("C")

}

Azt is megváltoztattuk az oldal címét. Kérjük, vegye figyelembe, hogy nem kell borotva szöveget vagy @ elemeket használnunk: A nézetadatok megjelenítéséhez, mert a testkód minden egyes sora a borotválkozási irányelv vagy a HTML elemből indul.

Tanács

Kérjük, vegye figyelembe, hogy az ár tulajdonságait a karakterláncban a tostring módszerrel ("C") konvertáltuk, amely numerikus értékeket jelenít meg a szerveren működő tenyésztési beállítások szerint. Például, ha a kiszolgáló EN-USA-ként van konfigurálva, akkor (1002.3) .tostring ("c") visszaadja az 1,002,30 dollárt, de ha a kiszolgáló EN-GB-ként van konfigurálva, ugyanaz a módszer vissza fog térni 1,002,30 fontot. Megváltoztathatja a szerver tenyésztési beállításait a csomópont hozzáadásával Web.config fájl Következő rész: .

Állítsa be az alapértelmezett útvonalat

Most már elég ahhoz, hogy elmondjuk az MVC platformnak, hogy a webhelygyökérbe bevitt kérések (http: // mysite /), meg kell jelenítenie a termékkontroller osztálylista művelet módját. Ehhez szerkesztjük az üzemeltetőt az App_START / routeconfig.cs fájlban, amint azt a 7-9.

7-9-es lista: Adjon hozzá számjegy alapértelmezett értéket
rendszer használata; System.Collections.Genic használata; A system.linq használata; System.web használata; A system.web.mvc használatával; System.Web.Ruting; Namespace Sportsstore.weBui (routecollection útvonalak.inocollection (útvonalak) (útvonalak) (útvonalak) (útvonalak) "); útvonalak.maproute (név:" Alapértelmezett ", URL:" (vezérlő) / (művelet) / (ID) ", Alapértelmezések: Új (vezérlő \u003d "termék", művelet \u003d "lista", id \u003d urlparameter.option));)));

Változtassa meg a terméket és az indexet a listán, amint az a listában látható. A 13. fejezetben részletesen leírjuk az ASP.NET-ben való átirányítás lehetőségeit. Jelenleg elég tudni, hogy ez a változás kéréseket küld az alapértelmezett URL-re az azonosított akciómódban.

Tanács

Kérjük, vegye figyelembe, hogy a 7-9-es felsorolásban telepítettük a termék vezérlő értékét, és nem a termékkontroller, amely az osztály neve. Ez része az ASP.NET MVC nevezési sémának, amelyben a vezérlők osztályai mindig a vezérlőn végződnek, és az osztályhoz való hozzáféréskor a név e része esik.

Futtassa az alkalmazást

Minden alapösszetevő készen áll. Van egy vezérlőnk a műveleti módszerrel, amelyet az alapértelmezett URL kérésére hívnak. Ez a cselekvési mód a repository interfészünk szimulált megvalósítására támaszkodik, amely egyszerű vizsgálati adatokat generál. A vizsgálati adatok továbbítják azt a nézetet, hogy a cselekvési módszerrel kötöttük, és egyszerű listát hoz létre az egyes termékekre vonatkozó információkkal. Ha futtatja az alkalmazást, akkor a 7-6. Ábrán látható eredményt látja.

7-6. Ábra: Megtekintjük az alkalmazás alapfunkcióját

Ez egy tipikus fejlesztési sablon az ASP.NET MVC platform számára. Nagyon sok időt adunk ki a beállításhoz, de az alkalmazás alapfunkciójának fejlesztése nagyon gyorsan.

Nos, tehát új vagyok a világ MVC-vel, de úgy tűnik, hogy ez egy nagyon jó módja annak, hogy sikerüljön, és megpróbálom itt dolgozni.

A probléma a következő: Nem tudok adatokat kapni az asztalomról az SQL-adatbázisomban egy egyszerű legördülő űrlapra a regisztrációs oldalon.

Egyszerűen nincs ötletem, hogy hol helyezzem el az anyagot, ahol a kódot a táblázat megnyitása, az azonosítók kiválasztása, ahol a válasz.Write és hogyan küldje el a nézetre?

A modellem a következő:

Nyilvános string neve (Get, Set;) Public In User_ID (Get, Set;)))

Nyilvános cselekvésrezult listaer () (Visszatérés ();)

És véleményem:

@Model community.models.Users.

2 napig tartottam, és néztem néhány videót a YouTube-on, de haszontalan, nem találom meg. Kérjük, itt valaki más ismeretekkel? És kérjük, nevezzen meg nekem jó tankönyvekkel és / vagy fórumokkal, amelyeken további kérdéseket találok, amelyeket tudok

Még mindig nem szerencsés ebben a projektben.

Létrehozok egy űrlapot ebben az űrlapon, szeretnék egy db-hurok (eenumerable). De az aktuális modell nem benumerable. Majdnem ragadtam, egy csomó tankönyvre néztem, és mindannyian csak egy kapcsolatot merítenek, és mi van, ha két modellre van szükségem?

Itt van az én vezérlőem, rájöttem, hogy át kell adnia a listát a nézetre, ugye?

Nyilvános cselekvési nyilvántartás () (visszatérő nézet (db.users.tolist ());)

Hogyan kaphatom meg ezt a listát a prezentációmban, modell nélkül?

@neoistheone, a példa nem segített nekem nagyon, az adatbázisom így nyílik:

Private DatabaseContext db \u003d új adatbázisokText ();

És nem tudom, hogyan kell csinálni, de megnyitja a kapcsolatot. Sok órát próbáltam, csak hülye, nem aludt sokáig!

Az ASP-CLASSIC FYI programozást használom, és ez az első komoly kísérletem, hogy frissítsem a modern nyelv és az OOP programozásáról.

6 válasz

Szelektömböt adjon hozzá a modellhez:

Nyilvános selectlist legördülő lista (Get, Set;)

Építsen egy osztályt a gyűjteményhez:

Nyilvános osztály MyListtTable (nyilvános karakterlánc (Get, Set;) Nyilvános karakterlánc megjelenítése (Get, Set;)))

És akkor a vezérlőben töltse le az adatokat a MyListTable osztályból az adatbázisból:

VAR List \u003d Új lista (); (SQLConnection c \u003d új sqlconnection (cstring) használatával (SQLCOMMAND CMD \u003d új SQLCOMMAND ("Select Keyfield, Displayfield a táblázatban", c)) (használva (sqldatarereader rdr \u003d cmd.executereader ()) (míg (RDR.read () ) (Laist.add (új myListtTable (billentyű \u003d rdr.getstring (0), kijelző \u003d rdr.getstring (1)));))) VAR modell \u003d új felhasználók ()); Model.Dropdownlist \u003d Új szelektle (lista, "billentyű", "kijelző");

És akkor végül meg kell küldenie a modellt a bemutatóra:

Visszatérés (modell);

Most a borotva jelenítheti meg:

@ Html.dropdownlistfor (m \u003d\u003e model.dropdownlist);

Természetesen ezeket a dolgokat a legjobb nevekkel hívhatja, de megkapja ezt az ötletet.

Már nagy válaszok vannak, de itt van egy másik megközelítés.

A felhasználót modellként használhatja, a ListuServiewModel ábrázolási modellt és az USERCONTROLLER-t vezérlőként. A munka nézet-modell az, hogy átadja az összes olyan információt, amely az oldalon megjelenhet az oldalon a vezérlőtől anélkül, hogy nemkívánatos tulajdonságokat adna a modellosztályhoz. A felhasználó esetének listáján az adatbázisból a legördülő listában.

Nyilvános osztályú felhasználó // egyébként a Singular használatakor az osztály (nyilvános karakterlánc neve) nyilvános Ins User_ID (Get, Set;)

Nézet-modell

Nyilvános osztály ListuserviewModel (nyilvános lista) Felhasználók (Get, Set;)))

vezérlő

Nyilvános osztály USERCONTROLLER: Controller (privát adatbázisokText db \u003d új adatbáziscontext (); nyilvános akciórezult listaer () (varhers \u003d db.users.tolist (); var viewmodel \u003d új listaUSViewModel (felhasználók \u003d felhasználók);) )

Most használja a ListuServiewModel helyett a felhasználó a prezentációban mint modellként.

@Model community.models.listuserviewmodel

és leesik

@ Html.dropdownlistfor (M \u003d\u003e m.Users, új selectlist (modell.users, "user_id", "Név"), "")

Magyarázat:

Hozzon létre egy legördülő listát a modellekkel rendelkező felhasználók számára. A listák listájának listájának listájának forrása. "User_ID", mint a kiválasztott felhasználó és a "NAME" érték, mint kijelzőjel. Az utolsó argumentum (üres karakterláncot "") az alapértelmezett érték, amelyet a legördülő megjelenítés a kiválasztás előtt jelenik meg.

Remélem, ez segít Önnek, vagy valaki másnak.

Próbáld ki,

Nyilvános string CoRTRYID (Get, Set;) Nyilvános lista Országlistánista (Get, Set;)

A listát kitöltő vezérlési módszer

Nyilvános lista. Getcountrylist () (qrmg_vendorportaldatacontext _CONTEXT \u003d új QRMG_VENDORPORTALDATACONTEXT ()) (Visszatérés (a C in _Context-ban. Nemrégiben, ahol c.isdelected \u003d\u003d hamis válasszon c) .tolist ();))

Legördülő lista

@ Html.dropdownlistfor (m \u003d\u003e m.cusryid, új selectlist (modell.countrylist, "coutryid", "érték"))))

ez az én asztalom az adatbázisban

Nézd meg a cselekvési vezérlőt

// Get: Letters Public ActionResult index () (Viewbag.lettatususservice.getallLetterstatus (), "ID", (Constructper.getcurrentKultúra () \u003d\u003d "ar")? "Namearabic": "Név", kérés. "]); Visszatérés ();)

és a prezentációban

@ Html.dropdownlist ("letteratatus")

Általam használt tervező

Új selectlist (lista) Mylistfromdatabase, string ingatlannameofvalueinhtml, string PropertyNameofdesplayNHTML, String SelectItemValue);

ez a sor szükséges.Querystring ["letteratatatus"], mert küldök a kiválasztott elemeket a Querysrtting-ben

és az áramkultúra alapján úgy döntöttem, hogy melyik oszlopot jelenítsem meg

És az eredmény

de azt hiszem, hogy a legjobb módja annak, hogy: - kapjon vagy hozzon létre elemeket, majd iterálja, hogy dobja meg őket, hogy generálják a kiválasztási címkét manuálisan. Ezt a megközelítést jól leírtam

11/25/06 12.7K

Bevezetés

Az ASP.NET az egyik összetevő .NET-keretrendszer. Röviden felsoroljuk a technológia főbb jellemzőit.

* Közösségi végrehajtó környezet CLR
* Osztálykönyvtár.net-keretrendszer
* Nyelvek .NET (C #, vb.net, J # és mások)
* Ado.net
* ASP.NET
* Webes szolgáltatás
* Közbenső msil nyelv (Microsoft közbenső nyelv). Ez egy összeszerelő a Runtime Environment CLR számára.

Az Ado.net egy olyan osztály, amelynek célja a Microsoft SQL Server adatbázisok eléréséhez az OLEDB adatforrásokhoz és az XML fájlokhoz.

A projekt különböző részei különböző nyelveken írhatók, ezt interoperabilitásnak nevezik. Megpróbálunk egy projektet írni, ahol az egyik oldal a vizuális alapon lesz, a másik pedig a C # -n.

A teljes nyelvek összeállítása és értelmezése. Egy összeállított nyelven írt program összeállításának folyamatában végrehajtandó fájl (Windows - EXE). Gyorsan elvégezhető, de nem lehet végrehajtani egy másik platformon. A végrehajtott gépnek hasonló konfigurációval kell rendelkeznie. Például, ha a program DLL-t használ, akkor ezt a könyvtárat a célgépre kell telepíteni. Az értelmezhető programokat a végrehajtás időpontjában állapítják össze, így lassabban dolgoznak, de nem függnek az adott géptől. A V.NET-keretrendszer kétlépcsős összeállítást alkalmaz, vagyis az első szakasz az MSIL összeállítása, a második pedig a végrehajtás során a "Just-in-time" fordító összeállítása. A JIT Compiler optimalizálja a gépet, amelyen végrehajtott. Az ASP.NET-ben az oldal összeáll az MSIL-ben, amikor először kezeli az ügyfelet az oldalra. Ezzel együtt az általa használt osztályok összeállítják. Ha a Visual Studio 2005 programot használja, akkor nem számíthat az első kérésre, és erőszakkal összeállította a projekt összes oldalát. Ez lehetővé teszi a szintaktikai és egyéb hibákat.

Az MSIL egy olyan összeszerelő, amely nem függ az autótól. Minden olyan gépen hajtható végre, ahol a CLR telepítve van. A Mono projekt megpróbálja átvinni a CLR-t más platformokra, lehetővé téve a különböző platformokon futó kiszolgálókat.

Megismerheti magát a projektrel a http://mono-project.com címen

Az oldal http://go-mono.com/archive/xsp-0.10.html xsp - egy ASP.NET-kiszolgáló, amely az Apache Server - a fő kiszolgáló * Nix rendszerek kiterjesztését szolgálhatja.

Hogyan működik az ASP.NET

Amikor újra olvasunk, a megfelelő könyvtárakban C: WindowsMicrosoft.NetFramework is az aspnet_isapi.dll fájlt is elhelyezi. Ez egy ISAPI bővülés, és az ASP.NET alkalmazásokhoz (* .aspx * .mx, stb.), Valamint a munkafolyamatok aspnet_wp.exe, üzemanyagkérések megteremtésére szolgál. Internetes szerver - IIS vagy beépített webmatrix vagy beépített vizuális stúdió Cassini - Ezzel a kiterjesztéssel, ha az ASPX hosszabbító oldalakhoz való hozzáférést kell kezelniük.

Ez a modul disassets (parse) A csomag tartalma a ASPX oldalakat együtt elkülönített kódfájl, és létrehoz egy osztály az oldal nyelvét a tárgy oldal. Az ASPX oldal különbözik a szervervezérlők szokásos HTML Page jelenlététől, amelyeket speciális címkék írnak le. Az ASP.NET működésének megértéséhez fontos megjegyezni, hogy a vezérlőelem minden címke megfelel az oldalosztály tagjának. Például,

b. által átalakították

@__ctrl \u003d új globális :: System.web.ui.webcontrols.label ();

Az objektum fő feladata a HTML-kód csomagja a kimeneti adatfolyamban. Ez az osztály a könyvtárban.dll-be kerül, amely betöltődik a webszerver folyamatba. A későbbi kérések az oldalra is feldolgozzák a DLL-t, ha az oldal forráskódja nem változik. Mindezek a fájlok megtalálhatók az aktuális verzió "Ideiglenes ASP.NET fájlok" címtárában .net. Ha a Visual Studio 2005 vagy a VWD fejlesztési környezetben dolgozunk, az alkönyvtárat minden egyes projekt esetében létrehozza.

Az oldal és a projekt mappák típusai

Új fájlokat lehet hozzáadni az új fájl párbeszédablakon keresztül. Ha eltávolítja a jelölőnégyzetet "Helyi kód külön fájlban", a Visual Studio létrehoz egy fájlt, amelyben lesz egy oldal és kód a feldolgozáshoz (Webmatrix stílusban).

Minden fájl a projektkönyvtárba kerül. Ezzel szemben az összes fájl, amely a projektkönyvtárba kerül, részévé válik. Webhelyeknél nincs külön file.csproj, ami szerepel alkotóelemei, ahogy azt az előző verziókban a Visual Studio. Az oldatszerkezet (oldat) egy szövegfájlban van leírva. A megoldás több webhelyet és könyvtárat tartalmazhat.

Az ASP.NET 2.0 speciális projektbejegyzésekkel rendelkezik különböző típusú fájlokhoz. Például nyilvánosan elérhető osztályok, szövegfájlok és mások az App_CODE mappában (adatkészlet, osztálydiagram) tárolódnak. A kiterjesztésekkel rendelkező fájlok. CS or.vb, amely szórakoztató, automatikusan összeáll, ha bármely projektoldalt kérnek. Az APP_DATA tartalmazza a projektben használt adatforrásokat - hozzáférést és Microsoft SQL adatbázisokat, XML fájlokat. Ez a könyvtár nem érhető el kívülről, de csak az alkalmazásból. A témák mappája a projekt témáit (1. előadás) tárolja. A témák használata lehetővé teszi, hogy testreszabhatja a webhely egységes megjelenését, és központilag kezelje őket. Az APP_GLOBALRESOURCES olyan erőforrásokat tartalmaz, mint a különböző nyelveken létrehozható sorasztalok. Az erőforrás nyelv automatikusan kiválasztásra kerül a felhasználói böngésző beállításaitól függően. Az App_Webreferences mappa linkeket tartalmaz a használt webszolgáltatásokhoz.

A saját projekt bejegyzését például a képek tárolására hozhatja létre.

Projekt 2 nyelven

A weboldal projekt az ASPX és osztályokból áll, amelyeket az oldalakon (és természetesen számos erőforrás) használnak. Olyan osztályokkal rendelkező fájlok, amelyekkel a különböző oldalaktól kapcsolatba léphet, egy speciális APP_CODE mappába kerül. Fordításkor azokat egy összeszerelésbe helyezik - a könyvtári.dll hordozható futtatható formátumban. Nem számít, hogy melyik nyelven íródott, ha ez egy nyelv .net.

A projektben a harmadik féltől származó gyártók kész összeállított alkotása is használható. A bin mappába kerülnek. Ugyanakkor be kell importálni a projektbe.

<%@ Import Namespace="MyCustomNamespace" %>

Hozzon létre egy új projektet. Adjon hozzá egy fájlt az osztályfájl típusának kiválasztásával és a vizuális alapnyelv kiválasztásával. A környezet maga is kínálja a kód mappába. Hívjuk az egyéni osztályt. Nagyon egyszerű kódja lesz. Csak egy funkció, amely hozzáadja a Hello szót a paraméterként továbbított névhez.

Importálja a Microsoft.visualBasic Public Class Customclass Public Function GetMessage (Byval Name AS karakterlánc) mint string Return "Hello" és Név Vége

Add hozzá a CodeFolder_Cs.aspx oldal projekthez. Ez az oldal C #-ra van írva, de létrehoz egy osztályt írva a vb.net.

<%@ page language="C#" %> ASP.NET inline oldalak.

Üdvözöljük az ASP.NET 2.0-ban!

ADJA MEG NEVÉT:

Az oldal egy Windows alkalmazás formájának formájában hasonlít. Van egy gombja, amelyre kattintva van feldolgozva a Button1_Click funkcióban. Egy osztályt hoz létre, és a getmessage funkcióját egy olyan paraméterrel hívják, amelyet a szerkesztési elemből készítenek. A visszatérési értéket a címke1 elemben rögzítik. Egy egyszerűbb verzióban úgy néz ki, mint ez:

Label1.Text \u003d "Hello" + TextBox1.Text;

Az osztály a C #-ban írható, és az oldalról a vizuális alapon használható.

rendszer használata; Nyilvános osztály Customclass2 (String bemenet) (Hello hello a C # "+ bemenet;)) kódfolder_vb.aspx oldalkód:

Az App_Code könyvtárban azonban ugyanabban a nyelven helyezhető el. Ha különböző nyelveken vannak fájlok, a projekt nem fog összeállítani. A két nyelv használatához alkönyvtárat kell létrehoznia, adja hozzá a web.config fájlhoz, és helyezze be a fájlokat egy másik nyelven.

Regisztráció a Web.config fájlban:

... ...

Irányelv

Minden ASPX oldalán az irányelvek általában olyan felhasználással vannak megadva, amelyek szabályozhatják az oldal viselkedését. Megvizsgálta a nyelvüket, amellyel kommunikál a fordítóval, rámutat arra, hogyan kell feldolgozni ezt az oldalt. Az irányelveket általában a fájl elején helyezik el. Már találkoztunk az első előadással az irányelv oldalon.

Sintaskis hirdetési irányelvek Ilyen:

<%@ %>

Egyidejűleg több irányelvet is kijelenthet:

<%@ %>

Az ASP.NET 2.0-ban 11 irányelv található.
Az irányelv attribútumok leírása
@Nassemly név.
Az SRC behozatala oldalra vagy egy szerelvény-vezérlésre van szükség a megadott névvel
A @control megegyezik az oldalt, hogy megadja a tulajdonságok megadásához saját felhasználói vezérlők létrehozásakor.
@Implies interfész azt jelzi, hogy az oldal osztálya végrehajtja ezt az interfészt
@Import névtér Import névtér
A @Master ugyanaz, mint az oldal a tervezési sablon oldalán (Master Page). Új az ASP.NET 2.0-ban
@MasterType TypeName.
A virtualpath szigorúan gépelt linket ad a tervezési sablonban található osztályhoz. Lehetővé teszi az osztály tulajdonságainak elérését.
@OutputCache Időtartam
Elhelyezkedés
Varybycustom
VarybyHeader.
Vybybaram.
VarybyControl kezeli a gyorsítótárazási oldalt vagy az irányítást. Olvassa el az előadásokban leírtakat 15.
@Page Lásd az ezen az oldalon található attribútumokat. Csak az aspx kiterjesztésű fájlokban használható
@PreviouspageType TypeName.
VirtualPath Az oldal, melyeket a felhasználó által megadott adatok küldtek. Új asp.net 2.0. Korábban az oldalak csak magukra küldték a hozzászólást.
@Reference oldal
Ellenőrző oldal vagy vezérlés, amelyet ezzel össze kell állítani
@Register összeszerelés.
Névtér.
Src
Tagname.
A TagPrefix álneveket hoz létre a névterek és a felhasználói vezérlők számára

Eddig fontolja meg a 2. részletezést - az oldals és az import.

Oldalirányelv

Az oldalirányelv lehetővé teszi, hogy állítsa be az összeállítás során használt oldal tulajdonságait. Ezt az irányelvet gyakrabban használják, mint a többi, ezért részletesebben figyelembe kell venni.

Az irányelv legfontosabb tulajdonságait a táblázat tartalmazza:

Autoeventwireup. Automatikus oldal eseményfeldolgozás
Puffer. Az oldalak pufferelésének kezelése. Alapértelmezés szerint pufferelt
Osztály név. Lehetővé teszi az ezen az oldalon létrehozott osztálynevet.
Codefile. Fájlnév elválasztott kóddal ezen az oldalon
Kultúra. Beállítja a regionális paraméterek készletét, azaz Nyelv, pénznem formátum, dátumok, számok
Hibakeresés. Ha igaz, hibakeresési információ jelenik meg az oldalon.
Nyom A nyomkövetési információk fordítása
Engedélynézet. Az oldal állapotának megmentése. Alapértelmezés szerint elmentésre kerül
Engedélyezve. Lehetővé teszi a tervezés engedélyezését vagy letiltását. Az alapértelmezett be van kapcsolva
Öröklök. Az osztály, ahonnan az ezen az oldalon az elkülönített kódtechnológia öröklődik.
Isasync. Megmutatja, hogy az oldal aszinkron módon történik-e.
Nyelv. A beágyazott kódban használt nyelv
Figyelmeztetés. A Compiler figyelmeztetések legnagyobb megengedett szintje
CompilerOptions. Completor opciók

Osztálykönyvtár névtér

Az FCL osztályok könyvtár több ezer osztályt tartalmaz. A könnyű használat érdekében a névtérbe kerülnek. A névtérben bejelentett osztályok eléréséhez a teljes elérési út megadása nélkül be kell importálni a projektbe. Ha XML formátumú fájlokat szeretne dolgozni, akkor be kell importálnia a System.xml névteret. Az elválasztott kódoldalakon a C #, mint mindig, az I-t használó irányelv használata.

rendszer használatával. Xml;

Az ASPX oldalon - Import irányelv

<%@ Import Namespace= "System.XML " %>

Minden névtér esetében különálló behozatali irányelvre van szükség.

A Visual Studio.net és a VWD alapértelmezés szerint a C # oldal tartalmazza a leggyakrabban használt névtereket. Az ASPX oldal importja ezeket a névtereket nem szükséges.

rendszer használata; System.Data használata; A rendszer használatával. Konfiguráció; Rendszert használva. System.web használata; A system.web.security használatával; A system.web.ui használatával; A system.web.ui.webcontrols használata; a system.web.ui.webcontrols.webparts használata; A system.web.ui.htmlcontrols használata;

Például a System.Web.UI névtér egy osztály Oldal nélkül ASP.NET oldalon, system.web - httprequest és httpresponse.

Osztálynézegető program

Hogyan lehet megtudni, hogy milyen osztályok állnak rendelkezésre az osztályok könyvtárában? Ezt az objektumböngésző (Visual Studio 2005) és az osztályböngésző Webmatrix tervezi. Az objektumböngésző megnyitása a Visual Studio 2005 vagy a VWD Express programban válassza ki a Nézet-\u003e Objektumböngésző menüpontot. Ha Webmatrixot használ, az osztályböngésző ugyanabban a Windows Menu mappában található, mint Webmatrix - Minden program-\u003e ASP.NET Webmatrix. ASP.NET CLASS böngésző formátumban az SDK keretrendszerben.

Minden rendelkezésre álló névterület egy fa szerkezet csomópontja. Mi érdekli a System.web. Nyissa meg ezt a csomópontot. Vannak más névterek is. Nyissa meg a system.web.ui. Számos osztály, interfész, küldött, felsorolások vannak. Megtalálhatja őket ikonra. Például a küldött ikon hasonló a bőröndhöz.

- Osztály

- interfész

- esemény

- Listázás

- Módszer

Válassza ki az oldalt. A megfelelő ablakban megjelenik a módszerek, mezők és események listája. Ha kiválasztja a módszert, leírása megjelenik a harmadik ablakban. Az osztályban két további mappa - alaposztály és leszármazott osztályok. Mindegyikük is megtekinthető. Az objektumböngésző megmutatja az aktuális projekt osztályát. Ha az osztályokat az XML dokumentációs generációs címkék hozza meg, akkor ez az információ is látható, például összefoglaló, paraméterek, értékek, visszatérések.

Az Ispostback tulajdonság feltárása, megtudhatja, hogy van egy logikai értéke, és csak az olvasásra került.

Ellenőrizze a megfelelőségi szabványokat

Vannak különböző HTML és XHTML szabványok. Későbbi szabványok szigorúbb követelményeket jelentenek, például az XHTML 1.1 nem engedélyezik
és más egyszerű címkék lezárása lezárása nélkül
. Ugyanakkor a régi szabványok nem támogatják az új címkéket.

A HTTP lekérdezés fejléc jelzi a dokumentum szabvány, a Visual Studio 2005 összes oldalt jelzi a következő standard:

Ez a szabvány megköveteli az XMLNS attribútumot a címkén - Linkek a szabványt leíró webhelyre.

Az ASP.NET korábbi verzióira vonatkozó sok oldalnak nincs ilyen attribútuma. A HTML Forrásszerkesztő befektetési panelben van egy legördülő listája, amelyben kiválaszthatja a böngésző szabványos vagy verzióját, amelyhez ezt az oldalt szánják. Az oldal automatikusan ellenőrzi ezt a szabványnak való megfelelést.
Tulajdonságok oldal

Az oldal minden alapja a webes alkalmazásban.

A System.Web.ui.page osztály beágyazza az ASP.NET oldalak létrehozásához és feldolgozásához szükséges funkciókat.

Minden ASP.NET oldal egy osztály objektum, amelyet az ASP.NET Core automatikusan generál. Az osztály öröklődik az oldalhoz tartozó osztályból, ha elválasztott kódot használunk, vagy közvetlenül a System.web.ui.Page-tól közvetlenül örökölt. Ha a C # kód beágyazódik az oldalba. Szerda is létrehozza az alapértelmezett tervezőt.

Annak érdekében, hogy megbizonyosodjon arról, hogy létrehozhatunk egy Pagetype.aspx oldalt:

<%@ Page Language="C#" %> Oldaltípus

<% Response.Output.Write("Тип данной страницы {0}",this.GetType()); %>
<% Response.Output.Write("Базовый тип данной страницы {0}",this.GetType().BaseType); %>

Itt van az eredmény:


Az oldal system.web.ui.page alapvető típusa

Ugyanez az oldal, amelyet a kód elválasztó technológiája hoz létre.

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="PageType.aspx.cs" Inherits="PageType" %>

Írja az eredményt

Az oldal típusa asp.pagetype_aspx
Az oldal alapvető típusa PageType

Az a tény, hogy pageType az örököse System.Web.ui.page, meg van írva a fájl az elválasztott kód:

nyilvános részleges osztályú pagetype: system.web.ui.page

Az aktuális oldal objektumhoz kapcsolódhat változó oldalként. Az oldal az oldal kontrollelemeinek tartályát tartalmazza, ezért tartalmazza a vezérlőgyűjteményt. Ha Tegben van Van egy Runat \u003d "Server" attribútum, akkor az oldal tartalmazza a fejléc mezőt, amelyen keresztül vezérelheti a címoldalt. Például módosítsa az oldal nevét a böngésző fejlécében, hozzárendeljen egy stílus Cascading táblafájlt.

Hello asp.net.

Ismerje meg az ASP.NET programot

Ebben a példában megváltoztattuk a fejléc szövegét. Futtassa ezt az oldalt. A kapott HTML-kódban a címkén belül Nincs többé "Untitled Page", hanem egy "új cím", amelyet az oldal .Header.title. A címke létrejött <p>Az így tükröződött:</p> <p><style type="text/css"> p { color:Blue;background-color:Beige; } </style></p> <p>A CSS külső oldalát a fájlból importálták.</p> <p><link href="printable.css" rel="stylesheet" type="text/css" /><style type="text/css"></p> <p>Если атрибут AutoEventWireup, который присутствует в заголовке страниц, генерируемых VS, установлен, то методы с префиксом Page_ автоматической назначаются обработчиками событий страницы.</p> <p>У страницы есть два важных свойства — Response и Request. Свойство Response имеет тип HttpResponse. Response страницы можно воспринимать как выходной поток. Весь HTML код генерируемой страницы в принципе может быть выведен через запись в этот поток. Это был обычный способ работы разработчиков asp. Но в ASP.NET есть более удобные средства вывода данных с помощью серверных элементов управления. Response лучше использовать для записи Cookies, для задания различных параметров заголовка – управлять кэшированием, свойством Expires.</p> <p>Вот пример из MSDN:</p> <p>HttpCookie MyCookie = new HttpCookie("LastVisit"); DateTime now = DateTime.Now; MyCookie.Value = now.ToString(); MyCookie.Expires = now.AddHours(1); Response.Cookies.Add(MyCookie);</p> <p>Можно поменять кодовую страницу.</p> <p><head runat="server"> <%Response.Charset = "windows-1251"; %> <title>Русская кодировка

Функция Response.Redirect перенаправляет браузер на другую страницу.

Response.Redirect("NavigationTarget.aspx?name=" + System.Web.HttpUtility.UrlEncode(Name.Text);

Здесь формируется командная строка с параметрами QueryString, которые целевая страница может прочитать.

Аналогично свойство Request – это запрос, переданный на сервер для вывода нужной страницы. Он имеет тип HttpRequest. В нем хранится все о клиенте, включая настройки его браузера, файлы-cookie и данные, введенные им в форму.

NameLabel.Text = Server.HtmlEncode(Request.QueryString["Name"]);

События страницы

Работа среды ASP.NET со страницей начинается с получения и обработки Web-сервером IIS запроса к данной странице и передачи этого запроса среде выполнения ASP.NET. Среда выполнения анализирует, нужно ли компилировать страницу или можно выдать в качестве ответа страницу из кэша.

Затем начинается жизненный цикл страницы. Он начинается с этапа PreInit. После получения запроса среда выполнения загружает класс вызываемой страницы, устанавливает свойства класса страницы, выстраивает дерево элементов, заполняет свойства Request и Response и свойства UICulture и вызывает метод IHttpHandler.ProcessRequest. После этого среда выполнения проверяет, каким образом была вызвана эта страница, и если страница вызвана путем передачи данных с другой страницы, о чем будет рассказано далее, то среда выполнения устанавливает свойство PreviousPage.

На этом этапе устанавливается также свойство IsPostback объекта Page, которое позволяет узнать, в первый ли раз загружается форма или она должна формироваться как результат обработки данных, введенных пользователем.

В обработчиках событий страницы можно проверить это свойство:

if (!Page.IsPostBack) { // обрабатывать }

Дальше происходит инициализация страницы – событие Init. Во времени инициализации страницы создаются дочерние пользовательские элементы управления и им установливаются свойства id. В это же время к странице применяются темы оформления. Если страница вызвана в результате постбэка, то на этом этапе данные, отправленные на сервер, еще не загружены в свойства элементов управления. Программист может инициализировать их свойства.

Если на странице существуют валидаторы(классы проверки данных, см. лекцию 5), то для них вызывается метод Validate(). Затем вызываются обработчики событий (при условии, что страница генерируется в ответ на действия пользователя).

В методе Render генерируется сам HTML-код выводимой страницы. При этом страница вызывает соответствующие методы дочерних элементов, те – методы своих дочерних элементов. В методе Render код выводится в Response.OutputStream. Сама страница тоже считается элементом управления – класс Page является наследником класса Control. Если на странице есть блоки отображения, они становятся частью функции отрисовки (rendering).

Наконец, страница выгружается из памяти сервера и происходит событие Unload.

Во время жизненного цикла страницы происходят различные события. Можно включить трассировку страницы, чтобы посмотреть порядок из возникновения.

<%@ Page Language="C#" Trace ="true" TraceMode="SortByTime" %>

Во время трассировки не выводится событие Unload, потому что оно происходит, когда весь код уже выведен. Во время обработки этого события нужно освободить ресурсы, например соединения с базами данных или открытые файлы.

Полный список событий страницы, которые можно переопределить в классе страницы:

* PreInit
* Init
* InitComplete
* PreLoad
* Load
* LoadComplete
* PreRender
* PreRenderComplete
* Unload

Для всех событий определены обработчики – виртуальные функции OnInit, OnLoad. Когда AutoEventWireup равно true, в классе автоматически объявляются функции-обработчики событий с префиксом Page — Page_Load, Page_Init и так далее. Одно из самых популярных событий – это Page_Load. Создавая новую страницу, Visual Studio создает обработчик этого события. Здесь можно изменить внешний вид элементов и создать новые. Можно установить AutoEventWireup в false. В таком случае надо писать перегруженные версии виртуальных функций.

protected override void OnInit(EventArgs e) { }

Так можно добиться ускорения работы страницы.
Способы внедрения кода ASP.NET в страницу.

Есть три способа внедрить код на программном языке в страницу aspx.

Блок называется блоком объявления кода.

Тег