为了账号安全,请及时绑定邮箱和手机立即绑定

asp mvc 核心 url 本地化

asp mvc 核心 url 本地化

C#
长风秋雁 2021-06-30 05:33:25
我正在尝试本地化我的应用程序的 URL。不幸的是,大多数页面都向我展示了应用程序本地化的示例,例如:http://localhost/en-US/Home/Index这不是我想要的。我想本地化这样的 URL:http://localhost/欢迎http://localhost/Bienvenue [法语欢迎词]这种文化已经在我这边用 cookie 管理,并且与“CookieRequestCultureProvider”类配合得很好。所以我有这些信息,页面中的本地化是可以的。我成功注册了我需要的所有路线。上面的两个示例都可以工作并显示页面。多亏了这一点: public void Apply(ApplicationModel application)        {            foreach (var controller in application.Controllers)            {                foreach (var action in controller.Actions)                {                    var localizedRouteAttributes = action.Attributes.OfType<LocalizedRouteAttribute>().ToArray();                    if (localizedRouteAttributes.Any())                    {                        foreach (var localizedRouteAttribute in localizedRouteAttributes)                        {                            var localizedVersions = GetLocalizedVersionsForARoute(localizedRouteAttribute.Name); // GetLocalizedVersionsForARoute contains all routes translated and group by culture.                            foreach (var localizedVersion in localizedVersions)                            {                                if (!action.Selectors.Any(s => s.AttributeRouteModel.Template == localizedVersion.Template))                                    action.Selectors.Add(new SelectorModel(action.Selectors.First()) { AttributeRouteModel = localizedVersion });                            }                        }                    }                }            }        }所以 mvc 取选择器中的最后一个路由寄存器(如果是 FR,则取 FR 路由)。我无法通过这段代码管理其他路线,因为它已随应用程序一起加载。并且不能动态使用(应用程序允许在我想要的时候更改语言)。
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 134 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信