Tutorials ASP.NET Core MVC Tutorial
MVC Request Lifecycle — Complete Guide
MVC Request Lifecycle — Complete Guide: free step-by-step lesson with examples, common mistakes, and interview tips — part of ASP.NET Core MVC Tutorial on Toolliyo Academy.
On this page
ASP.NET Core MVC Tutorial · Lesson 36 of 200
MVC Request Lifecycle
Getting Started ✓ → Core MVC ✓ → Data & Security → Production → Career
Intermediate · 4 — Models, Routing & DI · ~6 min · Section 3: Controllers
What is this?
The request lifecycle is the journey of one HTTP request: from the user clicking a link, through middleware and routing, into a controller action, out through a Razor view, back as HTML.
Why should you care?
When a page is slow or returns 404, you need to know which step failed — routing? auth? database? lifecycle knowledge is your map.
See it live — copy this example
Create an MVC project (dotnet new mvc), add the code, and run dotnet run.
// User clicks: GET /Products/Details/5
// 1. Kestrel receives HTTP request
// 2. Middleware runs (HTTPS, static files, auth...)
// 3. Routing picks ProductsController.Details(5)
// 4. Action loads product, returns View(product)
// 5. Razor renders HTML
// 6. Response sent to browser
Run Example »
This lesson uses terminal or setup steps. Run commands on your computer — the live editor appears on coding lessons.
What happened?
- Each step is a chance to short-circuit — middleware can reject unauthorized users before the controller runs.
- Routing uses the URL pattern {controller}/{action}/{id}.
Try it yourself
- Run ShopNest and open /Products/Index (or Home/Index).
- In Visual Studio, set a breakpoint on the first line of that action.
- Refresh the browser and step through (F10) until View() is called.
- Change text or labels in the example and run again — watch the browser update.
- Break the code on purpose (remove a semicolon), read the error message, then fix it.
Remember
Request → middleware → routing → controller → view → response. Breakpoints on controller actions show you the lifecycle live. Static files are served before MVC routing.