@ Html.ActionLink对于语言

问题描述

如何将其转换为HTML操作链接

if (!string.IsNullOrEmpty(requestCulture.ToString()))
 {
     foreach (var item in cultureItems)
     {
         if (item.Value.Equals(requestCulture.ToString(),StringComparison.InvariantCultureIgnoreCase))
         {
             item.Selected = true;
             break;
         }
     }
 }

我可以通过使用

生成链接
if (!string.IsNullOrEmpty(requestCulture.ToString()))

{ foreach (var item in cultureItems) { if (item.Value.Equals(requestCulture.ToString(),StringComparison.InvariantCultureIgnoreCase)) { <a href=“@url”>@item.Name</a> } } }

但是如何为href生成链接,以更改页面上的语言。 href = / fr-ca

<a>FR</a> <a>EN</a>

解决方法

因为ActionLink的参数错误。它无法生成正确的操作链接。 @Html.ActionLink可以配置五个参数。第一个和第二个参数是必需的。

第一个参数是将在视图中显示的文本。第二个参数是动作。第三个参数是路由值。这是示例(Index.cshtml)。

@Html.ActionLink("text","get",new { key="item",value = "fr - ca" })

它由浏览器以这种格式解析。

<a href="/Home/get?key=item&amp;value=fr%20-%20ca">text</a>

在HomeController中。

    public IActionResult get(string key,string value)
    {
        return Json($"{key} {value}");
    }

结果。 enter image description here