首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在启用ASP.NET Core2.2 EndpointRouting的情况下使用RouteDataRequestCultureProvider?

在启用ASP.NET Core 2.2的EndpointRouting的情况下,使用RouteDataRequestCultureProvider可以实现根据路由数据来确定请求的区域性(Culture)。

RouteDataRequestCultureProvider是ASP.NET Core提供的一个实现了IRequestCultureProvider接口的类,用于从路由数据中获取区域性信息。以下是使用RouteDataRequestCultureProvider的步骤:

  1. 首先,确保已经启用了EndpointRouting。在Startup.cs文件的ConfigureServices方法中,添加以下代码:
代码语言:txt
复制
services.AddControllersWithViews()
    .AddRazorRuntimeCompilation()
    .AddViewLocalization(options => options.ResourcesPath = "Resources")
    .AddDataAnnotationsLocalization();

services.Configure<RequestLocalizationOptions>(options =>
{
    var supportedCultures = new[]
    {
        new CultureInfo("en-US"),
        new CultureInfo("zh-CN")
    };

    options.DefaultRequestCulture = new RequestCulture("en-US");
    options.SupportedCultures = supportedCultures;
    options.SupportedUICultures = supportedCultures;

    options.RequestCultureProviders.Insert(0, new RouteDataRequestCultureProvider());
});

上述代码中,我们通过services.Configure<RequestLocalizationOptions>方法配置了RequestLocalizationOptions,其中指定了默认的区域性为"en-US",支持的区域性为"en-US"和"zh-CN"。并且通过options.RequestCultureProviders.Insert方法将RouteDataRequestCultureProvider插入到RequestCultureProviders集合的首位。

  1. 接下来,在路由配置中添加区域性的路由模板。在Startup.cs文件的Configure方法中,添加以下代码:
代码语言:txt
复制
app.UseEndpoints(endpoints =>
{
    endpoints.MapControllerRoute(
        name: "localizedDefault",
        pattern: "{culture}/{controller=Home}/{action=Index}/{id?}");
    
    endpoints.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");
});

上述代码中,我们添加了一个名为"localizedDefault"的路由模板,其中包含了一个名为"culture"的路由参数,用于指定区域性。这样,请求的URL中可以包含区域性信息,例如"/en-US/Home/Index"或"/zh-CN/Home/Index"。

  1. 最后,在控制器中使用RouteDataRequestCultureProvider获取区域性信息。在需要获取区域性的控制器中,添加以下代码:
代码语言:txt
复制
private readonly IStringLocalizer<HomeController> _localizer;

public HomeController(IStringLocalizer<HomeController> localizer)
{
    _localizer = localizer;
}

public IActionResult Index()
{
    var culture = RouteData.Values["culture"]?.ToString();
    var localizedString = _localizer["Hello"];

    // 其他业务逻辑

    return View();
}

上述代码中,我们通过RouteData.Values["culture"]获取了路由数据中的区域性信息。然后,我们可以使用IStringLocalizer来本地化需要显示的文本,例如_localizer["Hello"]。

通过以上步骤,我们就可以在启用ASP.NET Core 2.2的EndpointRouting的情况下,使用RouteDataRequestCultureProvider来根据路由数据确定请求的区域性。这样可以实现多语言的网站或应用程序。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云数据库(TencentDB):https://cloud.tencent.com/product/cdb
  • 腾讯云对象存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云人工智能(AI):https://cloud.tencent.com/product/ai
  • 腾讯云物联网(IoT):https://cloud.tencent.com/product/iot
  • 腾讯云区块链(BCS):https://cloud.tencent.com/product/bcs
  • 腾讯云元宇宙(Metaverse):https://cloud.tencent.com/product/metaverse

请注意,以上链接仅供参考,具体产品选择应根据实际需求进行评估和决策。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

何在CDH启用Kerberos情况下安装及使用Sentry(一)

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 1.文档编写目的 ---- 本文档主要讲述如何在启用KerberosCDH集群中安装配置及使用Sentry。...服务如何与Sentry集成 3.Sentry测试 测试环境 1.操作系统为CentOS6.5 2.CM和CDH版本为5.11.1 3.采用root用户操作 前置条件 1.CDH集群运行正常 2.集群已启用...[mqjynnwc1d.jpeg] 3.Sentry配置 3.1Hive配置 ---- 1.配置Hive使用Sentry服务 [nfbb8s7u13.jpeg] 2.关闭Hive用户模拟功能 [txp7a2zfzj.jpeg...4.6Hue验证 ---- 1.使用Hue管理员,添加Hue测试用户fayson和user_w [ey58rzz0qb.jpeg] 2.使用fayson用户登录Hue,验证read权限 可以查看test...说明Sentry实现了Hive权限与Impala同步。 醉酒鞭名马,少年多浮夸! 岭南浣溪沙,呕吐酒肆下!挚友不肯放,数据玩花! 温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

3.5K70

何在CDH启用Kerberos情况下安装及使用Sentry(二)

hive用户登录Kerberos 使用beeline连接HiveServer2,创建columnread角色并授权test表s1列读权限,将columnread角色授权给fayson_r用户组 [root.../user/hive/warehouse下所有目录;使用hue只能对test表s1列进行select和count操作,无权限浏览/user/hive/warehouse目录及目录下所有子目录。...6.备注 ---- 在集群启用Sentry服务后,由于Sentry不支持Hive CLI权限管理,所以建议禁用Hive CLI。...HiveCLI访问Hive,未配置在内用户组是不可以通过Hive CLI访问(fayson用户)。...[fxgbri802u.jpeg] 注意:hadoop.proxyuser.hive.groups是针对用户组限制,配置了hive用户组可以通过Hive CLI访问Hive,则属于hive组所有用户均可以通过

3.5K80
  • 何在CDH未启用认证情况下安装及使用Sentry

    如果要启用授权,必须先启用认证。但在CDH平台中给出了一种测试模式,即不启用认证而只启用Sentry授权。...本文档主要描述如何在CDH未启用认证情况下安装,配置及使用Sentry。...(Kerberos或LDAP) 2.Sentry安装 ---- 1.在MySQL中创建sentry数据库 建表语句: create database sentry default character...3.Sentry配置 3.1Hive配置 ---- 1.配置Hive使用Sentry服务 [59dv4ih8cm.jpeg] 2.关闭Hive用户模拟功能 [zurr1lc8nh.jpeg] 3.集群未启用安全认证环境下...在未启用认证服务集群下,该文档Sentry配置方式只适用于测试环境,不能用于生产环境。 在集群启用Sentry服务后,由于Sentry不支持Hive CLI权限管理,所以建议禁用Hive CLI。

    8.6K90

    .NET Core实战项目之CMS 第十六章 用户登录及验证码功能实现

    今天我将带着大家一起来实现下我们ASP.NET Core2.2开发CMS系统登录及验证码功能。...-Version 4.5.1 上面的流程中你可以看到我们需要用到Session来进行验证码存储,所以我们也需要在ASP.NET Core2.2启用Session支持。...当然,这里为了实现我们自己登录逻辑,所以我们只使用基于基于cookie身份验证,即将基于cookie身份验证用作没有ASP.NET Core Identity独立身份验证提供程序。...当然你还得在Configure 中启用认证服务 ? 接下来就是登录页面的加载代码如下: ?...另外一种最简单粗暴方式就是下面这种直接关注我们公众号了: 总结 本文我带着你一步一步实现了登录页面的功能,包括验证及登录过程,认证和校验使用asp.net core中基于cookie身份验证组件

    1.4K30

    ASP.NET Core 1.1 简介

    更新您ASP.NET Core包依赖项以使用1.1.0 版本 注意:要在Visual Studio中使用NuGet包管理器将包更新到1.1 ,您需要从nuget.org下载并安装用于nuget ...: 要启用将View组件调用为标签助手,只需使用@addTagHelpers指令将View组件添加为标签助手: @addTagHelper "*, WebApplication1" 中间件作为MVC...语法提供了不需要编译器灵活开发体验,但在某些情况下,您不希望在运行时解释razor语法。...WebListener提供了利用Windows特定功能选项,支持Windows身份验证,端口共享,带有SNIHTTPS,TLSHTTP / 2(Windows 10),直接文件传输和响应缓存WebSockets...这允许您从应用程序启动时从密钥保险库秘密检索配置并将其保存在内存中,使用普通ASP.NET Core配置抽象来访问配置数据。

    2.4K60

    .NET 6隐式using指令(global using指令)

    具体命名空间取决于项目类型(控制台应用、Web 应用、类库等),因为每种项目的命名空间需求有所不同。...五、如何在项目中使用隐式和全局 using 指令5.1 使用全局 using 最佳实践集中管理全局命名空间:建议将所有的 global using 指令放在单独文件中,例如 GlobalUsings.cs...5.2 在大型项目中灵活使用隐式和全局 using对于大型项目,推荐以下使用方法:启用隐式 using 指令:默认情况下启用隐式 using 指令,减少常用命名空间引用。...使用全局 using 指令定义公共命名空间:将一些项目中频繁使用命名空间,工具类、扩展方法等,设为全局。...六、示例代码以下是一个综合示例,展示了如何在 ASP.NET Core 项目中使用隐式和全局 using 指令。

    2700

    ASP.NET MVC 5 - 给数据模型添加校验器

    您可以在一个地方 (模型类) 中以声明方式指定验证规则,这个规则会在应用程序中任何地方执行。 让我们看看您如何在本电影应用程序中,使用此验证支持。...注意,为了使jQuery支持使用逗号非英语区域验证 ,需要设置逗号(",")来表示小数点,本教程前面所述, 你须引入NuGet globalize。...一个真正好处是,你并不需要更改MoviesController类或Create.cshtml视图中一行代码,来启用此验证用户界面。...您在前面教程所创建控制器和视图会自动启用使用验证指明Movie model类属性。使用Edit行为方法,同样验证方法也完全适用。直到没有任何客户端验证错误表单数据,才会被发送回服务器。...· 默认情况下,浏览器就会使用基于语言环境(locale)正确格式呈现数据。

    9K70

    微软发布ASP.NET Core 2.2,先睹为快。

    除了所有健康检查包之外,BeatPulse团队还结合了其他功能,脉冲跟踪(Application Insights和Prometheus),我们可以为故障通知和UI界面配置不同监控系统,并具有一个可以查看健康状态全局概览图表...即将推出 当我们宣布规划ASP.NET Core 2.2时,我们提到了许多上面没有详述功能,包括使用IdentityServer4API授权,Open API(Swagger)驱动客户端代码生成以及...某些区域可能会在更新ASP.NET核心IIS模块(ANCM)之前收到更新运行时,对于面向ASP.NET Core 2.2项目,默认情况下这是必需。这也是新进程内托管功能要求。...如果您使用进程内托管在.NET Core 2.2上运行ASP.NET Core应用程序,则只需在Azure门户中启用64位选项,该站点现在将以64位进程运行。...有关如何在Azure App Service中使用其他配置在64位进程中运行ASP.NET Core应用程序其他信息,请参阅此文章。

    3.4K40

    ASP.NET Core 2.2 正式版发布

    除了所有健康检查包之外,BeatPulse团队还结合了其他功能,Application Insights和Prometheus,故障通知和UI界面,我们可以配置不同受监控系统,并具有健康状态全局视图...即将推出 当我们宣布规划ASP.NET Core 2.2时,我们提到了许多上面没有详述功能,包括使用IdentityServer4API授权,Open API(Swagger)驱动客户端代码生成以及...某些区域可能会在更新ASP.NET Core IIS模块(ANCM)之前收到更新运行时,对于面向ASP.NET Core 2.2项目,默认情况下这是必需。 这也是新进程内托管功能要求。...如果您使用进程内托管在.NET Core 2.2上运行ASP.NET Core应用程序,则只需在Azure门户中启用64位选项,该站点现在将以64位进程运行。...有关如何在Azure App Service中使用其他配置在64位进程中运行ASP.NET Core应用程序其他信息,请参阅此文章。

    2K20

    ASP.NET实现身份模拟

    使用模拟时,ASP.NET 应用程序可以选择以这些应用程序当前正为之操作客户身份执行。通常这样做原因是为了避免在 ASP.NET 应用程序代码中处理身份验证和授权问题。...默认情况下禁用模拟。为了 ASP 兼容性,用户必须显式启用模拟。如果为给定应用程序启用模拟,则 ASP.NET 总是模拟 IIS 提供给 ISAPI 扩展访问标记。...该标记既可以是已验证用户标记,也可以是匿名用户标记( IUSR_MACHINENAME)。不论应用程序中使用哪种身份验证类型,模拟都会发生。 只能模拟应用程序代码,编译和配置作为进程标记读取。...如果提供了显式配置帐户,ASP.NET使用该帐户取代 IIS UNC 标记。确实需要基于每个请求模拟应用程序可以直接配置为模拟提交请求用户。 默认情况下,在计算机级别上禁用模拟。...可以通过将配置文件放置在应用程序根目录下来启用模拟。有关 ASP.NET 配置系统更多信息,请参见 ASP.NET 配置。 与其他配置指令情况相同,此指令分层应用。

    1.8K20

    C# .NET面试系列七:ASP.NET Core

    第一部分:ASP.NET Core1. 如何在 controller 中注入 service?...以下是如何在ASP.NET Core中使用Filter并支持依赖注入步骤:1、创建一个实现了IFilterFactory接口Filterpublic class MyFilter : IFilterFactory...通过以上步骤,你就可以在ASP.NET Core中使用Filter并支持依赖注入。这种方式允许你使用依赖注入容器(ASP.NET Core内置容器)来注入Filter所需服务。6....属性注入和方法注入适用于某些特殊情况,例如在不改变类构造函数签名情况下注入依赖。在选择依赖注入方式时,可以根据具体需求和项目约定来决定使用哪种方式。10. 控制反转是什么 ?...以下是一些中间件常见使用场景:1、静态文件服务// 使用 UseStaticFiles 中间件来提供对静态文件(CSS、JavaScript、图像)访问。

    29810

    Docker最全教程——从理论到实战(二)

    Kestrel 可以单独使用,也可以与反向代理服务器( IIS、Nginx 或 Apache)一起使用。...在没有 Kestrel 或自定义服务器实现情况下,不能使用 IIS、Nginx 和 Apache。 ASP.NET Core 设计为在其自己进程中运行,以实现跨平台统一操作。...注意: Kestrel 可以单独使用,也可以与反向代理服务器( IIS、Nginx 或 Apache)一起使用。在docker容器中,我们推荐使用Kestrel。...在大部分情况下,我们推荐使用反向代理服务器。主要是有以下好处: 可以限制所承载应用中公开公共外围应用。 可以提供额外配置和防护层。 可以更好地与现有基础结构集成。...在BIOS中启用虚拟化。通常,默认情况下启用虚拟化。这与启用Hyper-V不同。 支持CPU SLAT功能。 至少4GBRAM。

    1.4K30

    Docker最全教程——从理论到实战(二)

    Kestrel 可以单独使用,也可以与反向代理服务器( IIS、Nginx 或 Apache)一起使用。...在没有 Kestrel 或自定义服务器实现情况下,不能使用 IIS、Nginx 和 Apache。 ASP.NET Core 设计为在其自己进程中运行,以实现跨平台统一操作。...注意: Kestrel 可以单独使用,也可以与反向代理服务器( IIS、Nginx 或 Apache)一起使用。在docker容器中,我们推荐使用Kestrel。...在大部分情况下,我们推荐使用反向代理服务器。主要是有以下好处: 可以限制所承载应用中公开公共外围应用。 可以提供额外配置和防护层。 可以更好地与现有基础结构集成。...在BIOS中启用虚拟化。通常,默认情况下启用虚拟化。这与启用Hyper-V不同。 支持CPU SLAT功能。 至少4GBRAM。

    1.5K30

    HttpClient在ASP.NET Core中最佳实践:实现高效HTTP请求

    然而,如何在ASP.NET Core中实现高效HTTP请求,是许多开发者面临挑战。...然而,在ASP.NET Core中,如何正确使用HttpClient以避免常见性能问题,连接池耗尽和资源泄漏,是开发中需要重点考虑内容。2....使用代理IP为了避免IP地址被目标服务器限制,许多爬虫会使用爬虫代理IP。下面的示例展示了如何在HttpClient中使用爬虫代理IP进行请求。...我们可以通过上述代码模拟一个常见浏览器行为,从而获得所需数据。此外,使用代理IP可以规避IP限制问题。结论HttpClient是ASP.NET Core中强大且灵活工具。...通过遵循最佳实践,全局复用HttpClient实例、合理使用代理IP、设置User-Agent和Cookie等,可以显著提高HTTP请求效率和稳定性。

    22510
    领券