RazorPages, GET a POST požadavky, bindování dat, návratové metody (Redirect, Page)
Formát: 30 min praktická úloha, 15 min obhajoba + teorie. Podle informací z minulých let bude praktika vyplnit kostru projektu (registrační formulář). Připraveno na to.
Razor Pages je moderní způsob tvorby webových stránek v ASP.NET Core (od .NET Core 2.0, 2017). Každá stránka je samostatná jednotka: má vlastní HTML šablonu a vlastní C# logiku.
Každá Razor Page se skládá ze 2 souborů:
Pages/
├── Kontakty.cshtml ← HTML šablona (Razor syntaxe, C# v HTML)
└── Kontakty.cshtml.cs ← C# logika (třída PageModel)
| Razor Pages | MVC | Web API | |
|---|---|---|---|
| Architektura | Stránka jako jednotka | Controller-Action-View | Controller-Endpoint |
| Vrací | HTML | HTML | JSON/XML |
| Pro co | Klasické weby s formuláři | Komplexní weby | API pro frontend/mobile |
| Logika | V PageModel (1:1 se stránkou) | Sdílená v Controlleru | V Controlleru |
| Routing | Podle souborové struktury | Podle atributů / konvence | Podle atributů |
| Náročnost | Jednodušší | Středně | Středně |
Razor Pages se hodí pro klasické weby, kde stránky představují stránky (formuláře, seznamy, detaily). Web API se hodí pro frontendy v Reactu/Vue nebo mobilní aplikace.
.cshtml@page ← POVINNÉ, říká ASP.NET, že jde o Razor Page
@model KontaktyModel ← propojí šablonu s PageModel třídou
Bez
@pagesoubor není Razor Page, framework ho ignoruje a soubor není dostupný jako URL.
| Soubor | URL |
|---|---|
Pages/Index.cshtml |
/ |
Pages/Kontakty.cshtml |
/Kontakty |
Pages/Kontakty/Detail.cshtml |
/Kontakty/Detail |
Pages/Admin/Kontakty/Index.cshtml |
/Admin/Kontakty |
@page "{id:int}" // /Kontakty/5
@page "{id:int?}" // /Kontakty nebo /Kontakty/5 (volitelný)
@page "{slug}" // /Kontakty/anykoliv-text