Blazor
一个免费的开源 Web 框架,使开发人员能够使用 Microsoft 开发的 C# 和 HTML 创建 Web 应用。
23 个问题
大家好;
阅读本部分,在 Blazor 中为用户设置区域设置的方法如下:
Navigation.NavigateTo(
$"Culture/Set?culture={cultureEscaped}&redirectUri={uriEscaped}",
forceLoad: true);
这是对的吗?这是一个让我感到非常复杂的解决方案。
然后设置它是否为会话/电路设置它?对于从 IStringLocalizer 返回的字符串和日期/数字格式?
另外,如果我不导航到此 url,假设会话/线路的区域性是在用户浏览器中设置的,这是否正确?
注意: 此问题总结整理于:Blazor 服务器区域性是否通过 URL 设置?
你好,
众所周知,在 Blazor Server 应用程序中,通信或导航基于 SignalR 线路 (WebSockets)。因此,如果本地化方案基于 URL 路径或查询字符串,则该方案可能无法与 WebSocket 一起使用,从而无法保留区域性。因此,推荐的方法是使用本地化区域性 cookie,它将确保 WebSocket 连接可以正确传播该区域性。请参阅本文的按用户首选项动态设置服务器端区域性部分,查看保留用户区域性选择的示例 Razor 表达式。
因此,它将使用以下代码通过本地化 cookie 实现基于重定向的方法。应用通过重定向到控制器来保留用户选择的区域性。控制器将用户选择的区域性设置为 Cookie,并将用户重定向回原始 URI。
Navigation.NavigateTo(
$"Culture/Set?culture={cultureEscaped}&redirectUri={uriEscaped}",
forceLoad: true);
如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。 注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知 此线程的通知。