gpt4 book ai didi

c# - ASP.NET MVC Core 如何获取应用程序支持的文化列表

转载 作者:太空狗 更新时间:2023-10-30 01:14:53 26 4
gpt4 key购买 nike

在我的 Startup.cs 中,我添加了两种文化:

       var cultureLt = new CultureInfo("LT");
var cultureEn = new CultureInfo("EN");
var supportedCultures = new List<CultureInfo> {cultureEn, cultureLt};

var requestLocalizationOptions = new RequestLocalizationOptions();
requestLocalizationOptions.RequestCultureProviders.Insert(0, new CustomRequestCultureProvider());
requestLocalizationOptions.SupportedCultures = supportedCultures;
requestLocalizationOptions.SupportedUICultures = supportedCultures;

app.UseRequestLocalization(requestLocalizationOptions);

我需要在构造函数中获取这个列表,现在在构造函数 Controller 中我初始化了变量

private readonly IOptions<RequestLocalizationOptions> _locOptions;

在 Action 中,我试图像这样获取此列表:

var cultureItems = _locOptions.Value.SupportedUICultures
.Select(c => new SelectListItem { Value = c.Name, Text = c.DisplayName })
.ToList();

但问题是这一行只返回当前在应用程序中设置的文化...如何同时获得 EN 和 LT 文化?

最佳答案

您必须配置 RequestLocalizationOptions。

public void ConfigureServices(IServiceCollection services)
{
// ... enter code here

// RequestLocalizationOptions must to be configured
var cultureLt = new CultureInfo("LT");
var cultureEn = new CultureInfo("EN");
var supportedCultures = new[] { cultureEn, cultureLt };

services.Configure<RequestLocalizationOptions>(options =>
{
options.SupportedCultures = supportedCultures;
options.SupportedUICultures = supportedCultures;
});

// Add them to IServiceCollection
services.AddLocalization();

// ... enter code here
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
// ... enter code here

// add RequestLocalizationMiddleware to pipeline
app.UseRequestLocalization();

app.UseMvc...
}

关于c# - ASP.NET MVC Core 如何获取应用程序支持的文化列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41017832/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com