ASP.NET Core MVC Interview Question #78

What is the difference between an optional route parameter and a default route value?

Advanced Routing, Filters, Areas & Application Structure Mid-Level Intermediate

Quick Interview Answer

An optional route parameter uses ? to indicate that the URL segment may be absent. A default route value supplies a value when a route segment is not present.

Detailed Explanation

An optional route parameter uses ? to indicate that the URL segment may be absent. A default route value supplies a value when a route segment is not present.

For example, {id?} makes id optional, while {controller=Home} gives controller the default value Home. Both affect route matching and URL generation, but they solve different problems.

Code Example

app.MapControllerRoute(
    name: "default",
    pattern: "{controller=Home}/{action=Index}/{id?}");