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 中是否存在这方面的问题。他们将能够判断实施是否可行。
在 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 中是否存在这方面的问题。他们将能够判断实施是否可行。