将数据传递给 taghelper

Passing data to a taghelper

我正在使用 TagHelper 来本地化许多 CSHTML 页面上的任何文本。为了 select 正确的翻译,TagHelper 需要知道用户当前 selected 的语言环境,它保存在用户的 LocalStorage 中。

我已经能够用这个值填充 ViewBag,所以我可以使用 Razor 语法将它添加到页面的某处,但我不知道如何在每次 TagHelper 时都提供此信息处理指定的 HtmlTargetElement。我感觉答案在 TagHelperContext 中的某处,并尝试将语言环境添加到页面的 <body> 标记,但处理 HtmlTargetElements 的顺序似乎没有固定。

which is held in the user's LocalStorage

本地存储不可访问server-side(正在呈现标签助手的地方)。因此,没有办法实现这一点。您也许可以使用会话,然后您可以通过 ViewContext 在您的标签助手中访问它。在您的标签助手中添加以下 属性:

[HtmlAttributeNotBound]
[ViewContext]
public ViewContext ViewContext { get; set; }

然后,您可以通过ViewContext.HttpContext.Session访问会话。