ASP.NET CORE MVC. View helperek Hiba oldalak Kivételkezelés Model validáció Naplózás

Hasonló dokumentumok
Objektumorientált Programozás VI.

ASP.NET CORE MVC Model réteg bevezetése Model Binding Repository tervezési minta Dependency Injection Transient és Singleton Custom Binding AutoMapper

Webes alkalmazások fejlesztése. 9. előadás Bevezetés az ASP.NET MVC keretrendszerbe

Vizuális és eseményvezérelt programozás , II. félév BMF NIK

Objektumorientált Programozás III.

Objektumorientált programozás C# nyelven

Élő webes alkalmazások rendszerfelügyelete cím- és tartalomteszteléssel

Webes alkalmazások fejlesztése. Bevezetés az ASP.NET MVC 5 keretrendszerbe

Webes alkalmazások fejlesztése 5. előadás. Adatbevitel és validáció (ASP.NET) Cserép Máté.

Programozás I. Gyakorlás egydimenziós tömbökkel Többdimenziós tömbök Gyakorló feladatok V 1.0 ÓE-NIK-AII,

Objektum Orientált Programozás IV.

Vizuális, eseményvezérelt programozás XI.

Webes alkalmazások fejlesztése 5. előadás. Adatbevitel és validáció (ASP.NET Core) Cserép Máté

MVC. Model View Controller

MicroSigner Közvetítő Szerver fejlesztői dokumentáció

Objektum Orientált Programozás VII.

Webes alkalmazások fejlesztése 5. előadás. Adatbevitel és validáció (ASP.NET)

Objektumorientált Programozás IV.

Java és web programozás

Vizuális és eseményvezérelt programozás , II. félév BMF NIK

Programozás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás V 1.0 OE-NIK,

Kivételkezelés, beágyazott osztályok. Nyolcadik gyakorlat

JavaServer Pages (JSP) (folytatás)

JAVA webes alkalmazások

Valimed API. REST API a magyarországi orvos pecsétszámok validálására

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Tájékoztató. Használható segédeszköz: -

Webes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI)

Objektumorientált programozás C# nyelven

Objektumorientált Programozás VI.

Symfony kurzus 2014/2015 I. félév. Controller, Routing

Egészítsük ki a Drupal-t. Drupal modul fejlesztés

Webes alkalmazások fejlesztése

WWW Kliens-szerver Alapfogalmak Technológiák Terv. Web programozás 1 / 31

Model View Controller alapú alkalmazásfejlesztés

Összefüggő szakmai gyakorlat témakörei évfolyam. 9. évfolyam

Összefüggő szakmai gyakorlat témakörei. 13 évfolyam. Információtechnológiai gyakorlat 50 óra

WEB-PROGRAMOZÁS II. 1. Egészítse ki a következő PHP kódot a következők szerint: a,b,c,d: <?php. interface Kiir { public function kiir();

10. évfolyam 105 óra azonosító számú Hálózatok, programozás és adatbázis-kezelés 105 óra Adatbázis- és szoftverfejlesztés gyakorlat tantárgy

Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni:

9.óra CodeIgniter Framework #1. Gyimesi Ákos

Java Server Pages - JSP. Web Technológiák. Java Server Pages - JSP. JSP lapok életciklusa

MicroSigner Közvetítő Szerver fejlesztői dokumentáció

InFo-Tech emelt díjas SMS szolgáltatás. kommunikációs protokollja. Ver.: 2.1

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft

Java Programozás 4. Gy: Java GUI. Tipper, MVC kalkulátor

Programozás. Bevezetés. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék

Webes alkalmazások fejlesztése 2. előadás. Webfejlesztés MVC architektúrában (ASP.NET) Webfejlesztés MVC architektúrában Fejlesztés ASP.

INFORMATIKAI ALAPISMERETEK

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

Memória játék. Felhasználói dokumentáció

Rajz 06 gyakorló feladat

10.óra CodeIgniter Framework #3. Gyimesi Ákos

.NET Microsoft.Net Framework és programozása II.

Webes alkalmazások fejlesztése 2. előadás. Webfejlesztés MVC architektúrában (ASP.NET Core) Cserép Máté

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

C++ programozási nyelv Konstruktorok-destruktorok

HTML. Ismerkedés a JavaScripttel. A JavaScript lehet ségei. A JavaScript kód helye. Önálló JavaScript fájlok

OOP I. Egyszerő algoritmusok és leírásuk. Készítette: Dr. Kotsis Domokos

WEB PROGRAMOZÁS 3.ELŐADÁS. Űrlapok

Globális operátor overloading

Bevezetés Működési elv AJAX keretrendszerek AJAX

A WEB programozása - Bevezetés őszi félév Dr. Gál Tibor

XML Webszolgáltatás alapú osztott alkalmazás fejlesztése Johanyák Zsolt Csaba 1

Flex: csak rugalmasan!

ASP.NET CORE MVC. ASP.NET Core bevezetés, Hello World MVC workflow Controller réteg View réteg HTML leíró nyelv ViewModel

Osztályok. construct () destruct() $b=new Book(); $b=null; unset ($b); book.php: <?php class Book { private $isbn; public $title;

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

M-Fájlok létrehozása MATLAB-ban

Sakk játék. Feladat: JavaScript segítségével olyan programot kell írni, ami egy sakktáblát szimulál. Kiválasztásra változtatják a helyüket.

MVC Java EE Java EE Kliensek JavaBeanek Java EE komponensek Web-alkalmazások Fejlesztői környezet. Java Web technológiák

Java Programozás 11. Ea: MVC modell

Adabáziselérés ODBC-n keresztül utasításokkal C#-ban

API tervezése mobil környezetbe. gyakorlat

Bevezető. Servlet alapgondolatok

Webes alkalmazások fejlesztése 2. előadás. Webfejlesztés MVC architektúrában (ASP.NET Core) Cserép Máté

1. fejezet Bevezetés a web programozásába (Balássy György munkája) Az internet működése... 11

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java

Struts2 keretrendszer

MicroSigner Közvetítő Szerver fejlesztői dokumentáció

JavaScript bűvésztrükkök, avagy PDF olvasó és böngésző hackelés

WCF, Entity Framework, ASP.NET, WPF 1. WCF service-t (adatbázissal Entity Framework) 2. ASP.NET kliens 3. WPF kliens

Orvostechnikai eszközök gyártmányfejlesztése Aktív orvosi eszközök fejlesztése PEMS V&V. Nagy Katinka

SQL jogosultság-kezelés. Privilégiumok Grant és Revoke Grant Diagrammok

9. Képaláírás, kereszthivatkozás, tárgymutató és jegyzékek

Tisztelt Felhasználó!

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban

Pénzügyi algoritmusok

QBE Édes Otthon lakásbiztosítás tarifáló webservice. Fejlesztői dokumentáció 1.0.2

Tájékoztató. Használható segédeszköz: -

Johanyák Zsolt Csaba: Grafikus felület programozása. Copyright 2008 Johanyák Zsolt Csaba

RAJZ1. vezetett gyakorlat

ORVOSTECHNIKAI ESZKÖZÖK GYÁRTMÁNYFEJLESZTÉSE AKTÍV ORVOSI ESZKÖZÖK FEJLESZTÉSE - PEMS V&V

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

Smalltalk 3. Osztályok létrehozása. Készítette: Szabó Éva

ADATVÉDELMI NYILATKOZAT 1, BEVEZETŐ

WEBFEJLESZTÉS 2. MUNKAMENET-KEZELÉS, HITELESÍTÉS

Kiknek szól ez a könyv? Miről szól a könyv? Hogyan épül fel a könyv? Mire van szükség a könyv használatához? Szokások Forráskód Hibajegyzék

Kivételek kezelése (exception handling) Hibakezelés old style. Kivételkezelés

Grafikus keretrendszer komponensalapú webalkalmazások fejlesztéséhez

Átírás:

ASP.NET CORE MVC View helperek Hiba oldalak Kivételkezelés Model validáció Naplózás

Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát képezik. Ismeretük szükséges, de nem elégséges feltétele a sikeres zárthelyinek, illetve vizsgának. Sikeres zárthelyihez, illetve vizsgához a jelen bemutató tartalmán felül a kötelező irodalomként megjelölt anyag, a gyakorlatokon szóban, illetve a táblán átadott tudnivalók ismerete, valamint a gyakorlatokon megoldott példák és az otthoni feldolgozás céljából kiadott feladatok önálló megoldásának képessége is szükséges.

HTML helper A HTML kód + C# kód bonyolult összekapcsolása helyett: Rendelkezésünkre állnak beépített függvények, amelyek HTML kódot generálnak ActionLink Helper Jelenleg így gyártunk linkeket <a href="/home/delete/?hashcode=@item.gethashcode()">törlés</a> Ugyanezt generálhatjuk C# kóddal is @Html.ActionLink("Törlés", "Delete", new { hashcode = item.gethashcode() }) Paramétereket egy névtelen osztály segítségével hozunk létre Továbbá a Controller nevét nem kell a kódba beégetni 3

FORM helper @using (Html.BeginForm()) { <p> @Html.LabelFor(x => x.name) @Html.EditorFor(x => x.name) </p> <p> @Html.LabelFor(x => x.job) @Html.EditorFor(x => x.job) </p> <p> @Html.LabelFor(x => x.salary) @Html.EditorFor(x => x.salary) </p> <input type="submit" value="felvétel" /> } 4

Megjelenő felirat Előző példánkban az űrlapelemek feliratai a Property nevek lettek. Felüldefiniálás a modellen Data Annotation attribútummal: 5

Egyéb adatátvitel a Controller -> View között Kellene valamilyen segédadat Környezetfüggő sugószöveg, címsor, gombfelirat ViewModel kikerülhető vele valamennyire ViewData, ViewBag Dictionary 6

Hibaoldalak A HTTP protokoll számos státuszkódot definiál Bővebben: https://en.wikipedia.org/wiki/list_of_http_status_codes Leggyakoribb az Error 404 (Page not found) Lehetőség van viszont helyette saját hibaoldalt dobni 7

Saját hibaoldal Módosítjuk a Startup.cs-t Hogyha hibakód van, átadjuk egy saját Controllernek Error lesz a Controller, StatusPage az Action, code a GET paraméter 8

Saját hibaoldal Megírjuk az Error Controllert Létrehozunk hozzá egy View-t, ahol csak kiírjuk a kódot (vagy nyilván bármilyen szöveget a kód helyett) 9

Saját hibaoldal (több infó) Megírjuk az Error Controllert Létrehozunk hozzá egy View-t, ahol ViewData-ból kiírunk mindent 10

Hibakód dobása catch-ből Lekezelünk egy kivételt, és visszatérünk egy hibakóddal Teljesen mindegy milyen kóddal 11

Exception Filters Hogyha az alkalmazásban kivétel dobódik, lehetőség van elkapni egy Filter osztályban és valamilyen Action-höz továbbítani Új mappa: Filters -> új osztály: MyExceptionFilter.cs 12

Exception Filters Felhasználjuk szinte bárhol: Osztályon, Action-ön Az ErrorController megfelelő Action-je 13

Model Validation Törekednünk kell a helytelen felhasználói inputokra Szerveroldali ellenőrzés: Modellen validáló attribútumokkal Majd kliensoldalra objektum és hibaobjektum visszaküldése Kliensoldali ellenőrzés: Javascript kód/html5 lehetőségek Nem biztonságos, megkerülhető 14

Model Validation A Model Property-ken jelezzük attribútummal Lehetséges validációk: Required, Compare, EmailAddress, Phone, Range, StringLength, Url, RegularExpression 15

Model Validation Controlleren lekérdezzük a validáció eredményét Ha a modelünk nem valid, akkor konvenció szerint visszaküldjük a View-nak DE! Ilyenkor a validálás eredménye is megy vele 16

Validációs üzenet a View-n View-n két elérési mód Minden űrlapelemre vonatkozóan kollektíven a form elején Minden űrlapmező mellett (adott elemre vonatkozóan) 17

Validációs üzenet a View-n Validációs üzenetek a View-n Kollektíven is, és mezők mellett is Probléma: Ezek az üzenetek nem magyarul vannak, és amúgy is jó lenne saját validációt is írni Pl: a név csak két részből állhasson 18

Saját validáció írása Új mappa: ViewModels/Validation Új osztály: NamePieceValidationAttribute 19

Felhasználás + eredmény Modelen jelezzük 20

Saját paraméteres validáció írása Adhassuk meg az attribútumon, hogy hány tagból állhat a név! Konstruktoron át bekérjük 21