在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>
正常工作,提供http://domain/controller/new-post
等网址但是这个
<a asp-action="Новая-Публикация">Новая публикация</a>
生成类似http://domain/controller/Новая-Публикация
的网址如何解决这个问题,只针对任何语言获取小写的网址?
答案 0 :(得分:1)
似乎RouteCollection
使用ToLowerInvariant()
来小写网址:https://github.com/aspnet/Routing/blob/032bcf43b2cefe641fc6ee9ef3ab0769024a182c/src/Microsoft.AspNetCore.Routing/RouteCollection.cs#L155
引自MSDN:
使用不变文化的大小写规则返回转换为小写的String对象的副本。
来自CultureInfo.InvariantCulture:
不变文化对文化不敏感;它与英语有关,但与任何国家/地区无关。
所以它不适用于其他字母表。
您应该在Routing repo中检查是否存在问题,并在那里发布一个问题。他们能够判断实施是否可行。