在控制器example.com/{country}/{language}/home之前添加国家和语言

时间:2019-01-04 15:52:44

标签: asp.net-core asp.net-core-mvc

我被要求创建一个多国家页面,该页面应具有不同的基本URL,具体取决于页面的类型。

对于大多数页面,它应该是example.com/{country}/{language}/home,对于某些页面来说,它应该只是/ {country} /,对于某些页面来说应该是/ {language} /

这个想法是能够在没有重复内容的情况下优化SEO页面,它应该允许任何国家/地区和任何语言组合,因此对这样的事情使用1参数-则行不通。

我是net core的新手,对如何实现此解决方案一无所知。

1 个答案:

答案 0 :(得分:0)

@eVolve提供了解决方案。

使用该存储库,我能够执行我需要的操作。 https://github.com/gpeipman/AspNetCoreLocalization

诀窍是使用asp-route- {value}标签帮助程序,当与地图路线结合使用时,它可以设置路径。

<li asp-route-country="uk" asp-route-lang="ru"><a asp-controller=@currentController asp-action=@currentAction asp-route-country="uk" asp-route-lang="ru">uk ru</a></li>

 routes.MapRoute(
                name: "LocalizedDefaultcl",
                template: "{country:country}/{lang:lang}/{controller=Home}/{action=Index}/{id?}"

            );
            routes.MapRoute(
                name: "LocalizedDefault",
                template: "{lang:lang}/{controller=Home}/{action=Index}/{id?}"
            );

            routes.MapRoute(
                name: "LocalizedDefaultCountry",
                template: "{country:country}/{controller=Home}/{action=Index}/{id?}"
            );