RouteOptions 中的 LowercaseUrls = true 不影响具有非罗马字符的 URL

LowercaseUrls = true in RouteOptions doesn't affect URLs with non-Roman characters

在 ASP.NET MVC CORE 2.0

public void ConfigureServices(IServiceCollection services)
{
    services.Configure<RouteOptions>(options => options.LowercaseUrls = true);
    services.AddMvc();
}

<a asp-action="New-Post">New post</a>

工作正常给 URL 喜欢 http://domain/controller/new-post

但是这个

<a asp-action="Новая-Публикация">Новая публикация</a>

产生 URL 就像 http://domain/controller/Новая-Публикация

如何解决这个问题,使 URLs 仅适用于任何语言的小写字母?

似乎 RouteCollection 使用 ToLowerInvariant() 来小写 URL:https://github.com/aspnet/Routing/blob/032bcf43b2cefe641fc6ee9ef3ab0769024a182c/src/Microsoft.AspNetCore.Routing/RouteCollection.cs#L155

引自MSDN

Returns a copy of this String object converted to lowercase using the casing rules of the invariant culture.

来自CultureInfo.InvariantCulture

The invariant culture is culture-insensitive; it is associated with the English language but not with any country/region.

因此它不适用于其他字母表。

您应该检查 Routing repo 和 post 中是否存在这方面的问题。他们将能够判断实施是否可行。