如何在_host.cshtml中动态设置语言

问题描述 投票:0回答:2

在 _host.cshtml 页面中我有这个代码

<!DOCTYPE html>
@{
    CultureInfo cultureInfo = Thread.CurrentThread.CurrentCulture;
}
<html>
@if (cultureInfo.Name == "ar")
{
    <dir ="rtl"></dir>
    <lang ="ar"></lang>
}
else
{
    <dir ="ltr"></dir>
    <lang ="en"></lang>
}
<head></head>
<body></body>
</html>

但是我收到这个警告

警告(活动)HTML0003 缺少属性名称。

开(“rtl”,“ar”,“rtl”,“en”)
我怎样才能让它发挥作用

c# asp.net-core blazor-server-side
2个回答
1
投票

你确实缺少属性名称......我怀疑你想做的是这样的:

<!DOCTYPE html>
@{
    CultureInfo cultureInfo = Thread.CurrentThread.CurrentCulture;
    string dir, lang;
    if (cultureInfo.Name == "ar")
    {
       dir = "rtl";
       lang = "ar";
    }
    else
    {
       dir = "ltr";
       lang = "en";
    }
}
<html lang="@lang" dir="@dir">
<head></head>
<body></body>
</html>

0
投票

这样更容易维护。

<!DOCTYPE html>
@{
    CultureInfo cultureInfo = Thread.CurrentThread.CurrentCulture;
    string lang = cultureInfo.Name;
    string dir = cultureInfo.TextInfo.IsRightToLeft ? "rtl" : "ltr";
}
<html lang="@lang" dir="@dir" data-theme="light">
<head>
</head>
<body>
</body>
</html>
© www.soinside.com 2019 - 2024. All rights reserved.