ASP.NET Core 2 本地化 url。页面上生成的 urls 具有不一致的语言路由值

ASP.NET Core 2 localization by url. Generated urls on page have inconsistent language route value

登录后,在home/index中,url的汉化不一致。

这是显示问题的解决方案(ASP.NET Core 2.2)

https://github.com/bonioloa/AspCoreLocalizedSite

本地化代码在BaseControllerGlobalfilterSetup中。您可以在登录页面的字段中输入任何值。

本地化应该按 url 进行,如果您手动更改它(例如:localhost/it/Home/Index 到 localhost/en/Home/Index )然后使用 enter 导航,我希望页面中生成的所有链接的路径都以 "en".

开头

如果您检查此页面的来源 html,您可以看到 Home/Index 具有正确的路径 (/en/Home/Index),但隐私和注销路径以错误的语言开头 ( /it/),所有链接都使用相同的 asp 标签生成(参见 _layout.cshtml 视图)

所以在睡了一夜好觉之后我改变了方法,我终于注意到一件事:

SetCompatibilityVersion(CompatibilityVersion.Version_2_2)

此指令破坏了我使用本文实现的代码的第一个版本的本地化路由

Link1

Link2

我没有意识到兼容性设置是问题的根源,我制作了一个完全错误的自定义解决方案。警告:此设置随 visual studio 的默认 ASP.NET Core 2.2 空白解决方案一起提供。

我删除了存储库,我建议使用链接文章中提供的模板。