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.


Část 1: Teorie

Co jsou Razor Pages

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 vs MVC vs Web API

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.


Direktivy na začátku .cshtml

@page                    ← POVINNÉ, říká ASP.NET, že jde o Razor Page
@model KontaktyModel     ← propojí šablonu s PageModel třídou

Bez @page soubor není Razor Page, framework ho ignoruje a soubor není dostupný jako URL.

Routing podle souborové struktury

Soubor URL
Pages/Index.cshtml /
Pages/Kontakty.cshtml /Kontakty
Pages/Kontakty/Detail.cshtml /Kontakty/Detail
Pages/Admin/Kontakty/Index.cshtml /Admin/Kontakty

Routing s parametrem

@page "{id:int}"           // /Kontakty/5
@page "{id:int?}"          // /Kontakty nebo /Kontakty/5 (volitelný)
@page "{slug}"             // /Kontakty/anykoliv-text