Tutorials ASP.NET Core MVC Tutorial
Custom Routing — Complete Guide
Custom Routing — 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 60 of 200
Custom Routing
Getting Started ✓ → Core MVC ✓ → Data & Security ✓ → Production → Career
Advanced · 6 — Advanced MVC · ~10 min · Section 6: Routing
What is this?
Routing maps a URL to a controller action. /Products/Details/5 calls ProductsController.Details with id = 5.
Why should you care?
Clean URLs help users and SEO. Routing is how ASP.NET knows which C# method to execute for each link.
See it live — copy this example
Create an MVC project (dotnet new mvc), add the code, and run dotnet run.
// Program.cs
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
// Attribute routing on one action:
[HttpGet("/shop/sale")]
public IActionResult Sale() => View();
Run Example »
Edit the code and click Run — like W3Schools Try it Yourself.
What happened?
- Conventional routing uses {controller}/{action}/{id?} placeholders.
- Attribute routes like [Route("admin/[controller]")] override conventions for special URLs.
Try it yourself
- Click links in the default template and watch URL segments change.
- Add a new action Sale with [HttpGet("/shop/sale")].
- Add id parameter to Details and log it with ViewData.
- 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
Default pattern: {controller}/{action}/{id?}. Route parameters bind to action method parameters. Attribute routes for custom URLs like /shop/sale.