多元文化应用程序中的Razor页面路由

时间:2018-06-20 11:43:36

标签: c# routing asp.net-core-2.0

我正在ASP.NET Core v2.0中使用RazorPages,我不知道如何在应用程序中管理路由

这就是我现在的应用程序路由

public void ConfigureServices

services
   .AddMvc()
   .AddRazorPagesOptions(options =>
{
    options.Conventions.AddPageRoute("/AboutUs", "o-nas");
    options.Conventions.AddPageRoute("/Contact", "kontakt");
}

基本上,对于单个语言的应用程序就足够了,但是我必须有更多的语言。 我的应用程序文化基于域(即不使用任何前缀,例如“ en”,“ pl”)来实现,因此我不得不使用RewriteOptions

公共无效配置

var options = new RewriteOptions()
   .Add(RedirectRequests);

公共静态void RedirectRequests(RewriteContext上下文)

var request = context.HttpContext.Request;
if (request.Host.Value.Contains("websiteurl"))
{
   Thread.CurrentThread.CurrentCulture = new CultureInfo("pl-PL");
   Thread.CurrentThread.CurrentUICulture = new CultureInfo("pl-PL");
}
else if(request.Host.Value.Contains("anotherlanguagedomain"))
{
   Thread.CurrentThread.CurrentCulture = new CultureInfo("en-GB");
   Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-GB");
}

所以我的问题是我该如何获取我的应用程序中的链接及其URL将具有完全不同的URL并加载具有不同文化的同一剃刀页面(我也在使用语言资源)的情况。

0 个答案:

没有答案