Urls in ASP.Net Core met kleine letters in plaats van hoofdletters

Hoe configureer ik ASP.NET Core om alle urls met kleine letters te laten beginnen in plaats van hoofdletters?

Wanneer je links creëert in je ASP.NET Core web applicatie met behulp van TagHelpers zal elk woord in je URL beginnen met een hoofdletter.

Neem nu onderstaand voorbeeld:

<a asp-controller="About" asp-action="Index">About</a>
<a asp-controller="Tools" asp-action="Index">Tools</a>

Dit zal gerendered worden als onderstaande HTML waarin elk woord van de Controller of Action naam begint met een hoofdletter in de URL:

<a href="https://driesdeboosere.dev/About">About</a> <a
href="https://driesdeboosere.dev/Tools">Tools</a>

Zelfs in de adresbalk van je web browser begint elk woord van de Controller en Action met een hoofdletter:

URL in address bar

Ik heb mijn URLs liever allemaal in kleine letters, zoals dit:

<a href="https://driesdeboosere.dev/about">About</a> <a
href="https://driesdeboosere.dev/tools">Tools</a>

Gelukkig kunnen we dit erg gemakkelijk instellen in onze Startup.cs class in de ConfigureServices methode. We moeten enkel de nodige setup doen aan de route options door de RouteOptions LowercaseUrls property op true in te stellen.

services.AddRouting(options => options.LowercaseUrls = true);

Zorg ervoor dat je deze options plaatst VOOR services.AddMvc(), services.AddControllersWithViews(), services.AddRazorPages(), ...!!

Zie onderstaand voorbeeld:

public void ConfigureServices(IServiceCollection services)
{
    services.AddRouting(options => options.LowercaseUrls = true);
    services.AddControllersWithViews().AddRazorRuntimeCompilation();
    // other configurations
}

Nu zullen alle URL's gecreëerd door de TagHelpers met kleine letters beginnen.