3.1 Working with Razor syntax3.1.1 Directives and code blocks3.1.2 Rendering HTML with expressions3.1.3 Control blocks in Razor3.1.4 Rendering literal strings3.1.5 Rendering literal HTML3.2 Layout pages3.2.1 Assigning the Layout property3.2.2 Injecting optional content with sections3.3 Reusable HTML with partial views, tag helpers, and view components3.3.1 Partial views3.3.2 Tag helpers3.3.3 View components3.4 The PageModel3.4.1 Passing data to pages3.4.2 The PageModel as a view model3.4.3 The PageModel as a controllerSummary