首页 > 解决方案 > 通过 url 进行 ASP.NET Core 2 本地化。页面上生成的 url 语言路由值不一致

问题描述

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

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

https://github.com/bonioloa/AspCoreLocalizedSite

本地化代码在BaseController, Globalfilter, Setup. 您可以在登录页面的字段中输入任何值。

本地化应该通过 url 工作,如果您手动更改它(例如: localhost/it/Home/Index 到 localhost/ en /Home/Index )然后按回车键导航,我希望页面中生成的所有链接都有一个以开头的路径“恩”。

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

标签: c#asp.net-coremodel-view-controllerasp.net-mvc-routing

解决方案


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

SetCompatibilityVersion(CompatibilityVersion.Version_2_2)

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

链接1

链接2

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

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


推荐阅读