# Session 3: Views, Razor Syntax, Bootstrap, and Helpers ## ๐Ÿ“ Overview In this session, we covered the following concepts: - Creating and Organizing Views in MVC - Razor Syntax for dynamic content rendering - Bootstrap integration for responsive UI - Using Tag Helpers and HTML Helpers ## ๐Ÿ“š Topics Covered ### โœ… Creating and Organizing Views > Learn how views are structured in ASP.NET Core MVC, how to use layouts and partials. ### โœ… Razor Syntax > Use C# inside HTML with Razor to build dynamic views > โญ [Razor Docs](https://learn.microsoft.com/en-us/aspnet/core/mvc/views/razor?view=aspnetcore-9.0) ### โœ… Bootstrap > Integrate responsive design into your app using Bootstrap > โญ [Bootstrap W3Schools](https://www.w3schools.com/bootstrap/bootstrap_ver.asp) ### โœ… Tag Helpers and HTML Helpers > Tools to simplify HTML generation in Razor views ## ๐Ÿ“Œ Notes > _Collected from various sources including Microsoft Learn, W3Schools, and ChatGPT_ ### Part 1: Introduction to Views - Views (.cshtml files) are templates that render HTML with Razor syntax. - Views are organized in `Views/ControllerName/ViewName.cshtml`. - The `View()` method in a controller renders the corresponding view. - Layouts (\_Layout.cshtml) allow reuse of common HTML structure like headers/footers. - Partial Views help modularize repeated sections (like a profile box). ### Part 2: Razor Syntax - Use `@` to enter C# in HTML. - Implicit: `@Model.Name`, Explicit: `@(Model.Name + "!")` - Code blocks: `@{ var msg = "Hello"; }` - Loops and conditionals are supported: `@if`, `@for`, `@foreach`, `@switch` - Razor supports local functions in code blocks for reusability ### Part 3: Bootstrap - Bootstrap helps in building responsive UI components. - Grid system, forms, buttons, navbars, modals etc. are supported. - Integration involves adding Bootstrap CSS/JS in layout or view. ### Part 4: Tag Helpers and HTML Helpers #### Tag Helpers: - Looks like HTML with `asp-*` attributes - Example: `Link` - Requires `@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers` in `_ViewImports.cshtml` #### HTML Helpers: - Use C# syntax like `@Html.TextBoxFor(...)`, `@Html.BeginForm()` - More verbose but offers fine control with C# expressions #### Comparison: | Feature | Tag Helpers | HTML Helpers | | ----------- | ----------- | ------------ | | Syntax | HTML-like | C# methods | | Readability | High | Moderate | | Use | `asp-*` | `@Html.*` | ## ๐Ÿงช Practice - Create a view with a layout and partial - Use Razor syntax to display dynamic data - Build a form with Tag Helpers - Refactor a view using HTML Helpers ## ๐Ÿ™ Acknowledgments Sources: - [Microsoft Learn - Razor](https://learn.microsoft.com/en-us/aspnet/core/mvc/views/razor?view=aspnetcore-9.0) - [Microsoft Learn - Views](https://learn.microsoft.com/en-us/aspnet/core/mvc/views/overview?view=aspnetcore-9.0) - [W3Schools - Bootstrap](https://www.w3schools.com/bootstrap/bootstrap_ver.asp) - ChatGPT Assistance (2025 sessions)