MVC 5 vezérlők
Minden kérés érkezik a kérelem feldolgozása az adatkezelő. A vezérlő képes feldolgozni a kérést önkényesen, amíg nem jut át a határon felelősségi modell és a nézet. Ez azt jelenti, hogy a szabályozók nem tartalmazhat, illetve az adatok tárolására, valamint hogy ne keletkezzen felhasználói felületek.
Az infrastruktúra ASP.NET MVC Framework vezérlői olyan osztályok .NET, amelyek tartalmazzák a logikai feldolgozásához szükséges kérelmet. szabályozó szerepe az, hogy magukba alkalmazás logikáját. Más szóval, a kontrollerek feldolgozásáért felelős a bejövő kéréseket, végre műveleteket a modell a domain és különböző nézetek, hogy láthatóvá tegyük a felhasználó számára.
például alkalmazások
Az E és a következő cikkekben, akkor hozzon létre egy új MVC elnevezésű projekt ControllersAndActions az üres sablon (üres), megjegyezve, MVC doboz a Mappák hozzáadása és a mag referenciák (Add mappák és az alapvető mutató hivatkozások), valamint az egység tesztelése elnevezésű projekt ControllersAndActions .Tests. Unit tesztek jön létre, szimulált megvalósítások nem igényel, így Mennyiségi egység csomagot nem kell telepíteni, de telepíteni kell az MVC csomagot, hogy a vizsgálatokat jutnak hozzá az alapvető vezérlő osztályban.
A Package Manager konzol NuGet Visual Studio környezetben, írja be a következő parancsot:
Az adatkezelő fogalma
Létrehozása a vezérlő interfészen keresztül IController
Az MVC keretrendszer vezérlők osztályok végre kell hajtania a felületet tér IController System.Web.Mvc neveket. látható az alábbi példában:
Ahhoz, hogy a meghatározás a felület, meg kell töltse le a forráskódját MVC keretrendszer. ami rendkívül hasznos a megállapítás a belső működését az infrastrukturális alapok.
Mint látható, IController felület nagyon egyszerű. Ő csak az Execute () metódus, ha egy kérés érkezik a vezérlő osztályban. MVC Framework infrastruktúra megtudja melyik osztály középpontjában érdeklődés miatt olvas ingatlan értékét vezérlő, a létrehozott routing információk vagy átvezetnünk speciális osztályokat.
Készítsen vezérlő osztályok végrehajtásával érhető el IController felület, de mivel ez egy alacsony szintű interfész, meg kell csinálni a sok munkát kap a végén, valami hasznos. Azonban, a felület hasznos demonstrálására IController működő vezérlők, és e célból, Vezérlők mappa, hozzon létre egy új osztályt nevű fájlt BasicController.cs, amelynek tartalmát a látható az alábbi példában:
Módszer Execute () IController interfész továbbítjuk RequestContext objektumot. tájékoztatást nyújt az aktuális kérés és az útvonalat, amely megfelel az (és ez eredményezi a hívás vezérlő feldolgozásának ezt a kérést). két tulajdonságot az alábbiakban leírt táblázat határozza RequestContext osztály:
Tulajdonságok által meghatározott osztály RequestContext
Gets gyűjteménye értékek a szegmensek, indexelt neve
A Configure routing rendszer már megmutatták, hogyan kell használni a típus és RouteBase IRouteHandler beállítani a routing rendszer. Ebben a példában, a tulajdonság kapott értékek Értékek vezérlő és cselekvési variábilis szegmensek, amelyeket aztán -visszaírás.
A probléma egy része, amely akkor jelentkezik, ha létrehoz egy speciális vezérlő, társított való hozzáférés hiánya olyan eszközökkel bemutatót. Ez azt jelenti, hogy meg kell dolgozni egy alacsonyabb szinten, és ez magyarázza az irat tartalma közvetlenül válaszul az ügyfélnek. HttpContextBase.Response ingatlan visszatér HttpResponseBase objektumot. amely lehetővé teszi, hogy konfigurálja és tartalmat adni a választ meg kell küldeni az ügyfélnek. Ez egy másik érintkezési pont között a platform és az infrastruktúra ASP.NET MVC keretrendszer.
Ha az alkalmazás futtatásához, és megy az URL formájában / Basic / Index, a speciális vezérlő létrehoz egy kimeneti látható az alábbi ábrán látható:
Végrehajtás IController felület lehetővé teszi, hogy hozzon létre egy osztályt, amely MVC keretrendszer elismeri a vezérlő, és elküldi a kérelmet, anélkül, hogy bármilyen korlátozás a kérelem feldolgozása, és a választ generál érte. Ez egy jó példa, mert azt mutatja, hogy mennyi lehet nyújtható MVC Framework infrastruktúra még legfontosabb építőköveit például vezérlők, de az írás komplex alkalmazások ily módon lehet tele van nehézségekkel.
Osztályok nevei végződő Base
A feldolgozás kérések MVC Framework infrastruktúra támaszkodik ASP.NET platform, ami jó értelemben, mert Ez a platform a bevált és funkciókban gazdag megvalósítás szorosan integrálva van IIS alkalmazás szerver. A probléma az, hogy az osztályok által használt ASP.NET platform, hogy információt nyújtson a lekérdezések nem illeszkednek az egység tesztelése - a fő használatának előnyei MVC keretrendszer.
A Microsoft úgy döntött, hogy bevezessék az a vizsgálat, miközben kompatibilitás a meglévő alkalmazások, az ASP.NET Web Forms, azzal az eredménnyel, hogy megjelent Base osztályok. Ezek az osztályok úgynevezett mert ugyanaz a neve, mint az a fő osztályok ASP.NET platformon, majd egy szót Base.
Például az ASP.NET platform kontextus információt az aktuális kérelmet, és számos kulcsfontosságú alkalmazási szolgáltatások a HttpContext objektumot. Alapozza megfelelő osztály HttpContextBase, amelynek egy példányát vezetjük Execute (), meghatározott IController interfész (és a többi alaposztályok bemutatásra kerül a következő példákban). Az eredeti osztály és az osztály Base meghatározása azonos tulajdonságok és módszerek, de az alap osztályok mindig elvont. ami azt jelenti, hogy azok könnyen kezelhető egység tesztelése.
Néha kap egy példányt az egyik az eredeti ASP.NET osztályok, mint a HttpContext. Ebben az esetben meg kell hozzon létre egy barátságos MVC class Base, mint HttpContextBase. Ezt használja az egyik wrapper osztályt. hogy ugyanaz a neve, mint az eredeti osztályok, kiegészítve rövid wrapper például HttpContextWrapper. Wrapper osztályok származnak Base osztályok és konstruktőrök, hogy másolatokat készíteni az eredeti osztályban:
Kezdeti osztályok, Base és csomagoló osztályok osztályok meghatározása a system.web névtér, így ASP.NET platformon simán támogatja az MVC Framework alkalmazások és az idősebb Web Forms alkalmazások.
Létrehozása a vezérlő miatt öröklés a Controller osztály
Ahogy az előző példában, MVC Framework infrastruktúra lehetővé teszi gyakorlatilag korlátlan testreszabási és kiterjesztése. Ahhoz, hogy a bármilyen kívánt típusú lekérdezés feldolgozására és generáló eredményeket lehet megvalósítani IController interfész. Nem tetszik a cselekvési módszerek? Nem kell aggódnia a megjelenített ötletek? Ebben az esetben, akkor vegye ügyekben saját kezébe, és megvalósítani egy jobb, gyorsabb és sokkal elegánsabb megoldás a kérések kezeléséről. Vagy használhatja a létesítmények által kínált MVC keretrendszer a Microsoft fejlesztői csapat, és öröklik a vezérlőkhöz System.Web.Mvc.Controller osztályban.
Controller Viselkedés helyezkednek el több módszerek (megvalósítása helyett egyetlen módszer Execute ()). Minden módszer cselekvési megjelenik a megfelelő URL-t és hivatkozni a paraméterek kivont bejövő kérést.
Akkor vissza az objektum, amely az eredmény a műveletet (például, megjelenítés képviselet vagy átirányítani egy másik URL-re vagy egy akció metódust), majd feldolgozni, ahogy neked tetszik. A távolságot a jelzés az eredmények és azok végrehajtásának könnyebbé egység tesztelése.
Többször használható viselkedésre (például, hitelesítés) lehetnek kapszulázva formájában szűrőket, majd megjelölni minden szempontból vezérlők viselkedés és cselekvés eljárások a attribútum a forráskód.
Hacsak nem foglalkozik speciális követelmény, a legjobb megoldás létrehozása a kontrollerek lesz az öröklést class Controller szoftver, amely, mint az várható, nem a Visual Studio környezetben amikor új osztályt, válaszul kiválasztása után a Hozzáadás menüpontot -> állvány (Hozzáadás -> Sablon).
Az alábbi példában egy egyszerű vezérlő kódot hívják DerivedController, létre ezen a módon. Ez alkalmazásával létrehozott kiviteli alak 5 MVC Controller - Üres (MVC vezérlő 5 - Üres) egy néhány egyszerű módosítást, szánt szerelési ViewBag tulajdonságok és a választott képviselet:
Controller osztály is rendelkezik egy linket Razor jelentési rendszer. Ebben a példában, akkor vissza a hívás eredményeit megtekintése () metódus, amelyet át paraméterként, hogy elvegye a nézet nevét az ügyfélnek. Ahhoz, hogy létrehozza ezt a nézetet, hozzon létre Views / Származtatott mappát, kattintson jobb egérgombbal, és kattintson a Hozzáadás menüpontra -> 5 MVC Oldal megtekintése (Razor) (Add -> 5. oldal az MVC (Razor)). Adjon meg MyView.cshtml nevet, majd kattintson az OK-ra a bemutató fájl.
Hozd a fájl tartalmát megfelelően egy példa:
Miután az alkalmazás megkezdése és megy az URL formájában / Származtatott / Index ezt a műveletet a módszert alkalmazzák, és a kilátás MyView láthatóvá: