ASP.NET 通过网址进行核心 2 本地化.页面上生成的网址具有不一致的语言路由值



登录后,在home/index中,urls本地化不一致。

这是一个显示问题的解决方案(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)

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

链接1

链接2

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

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

最新更新