将数据传递给taghelper

时间:2018-03-19 15:51:48

标签: c# viewbag asp.net-core-tag-helpers

我正在使用TagHelper来本地化许多CSHTML页面上的任何文本。为了选择正确的翻译,TagHelper需要知道用户当前选择的区域设置,该区域设置保存在用户的LocalStorage中。

我已经能够使用此值填充ViewBag,因此我可以使用Razor语法将其添加到页面的某个位置但我无法弄清楚每次TagHelper处理时如何使这些信息可用指定HtmlTargetElement。我感觉答案在TagHelperContext的某处,并尝试将语言环境添加到页面的<body>标签中,但处理HtmlTargetElements的顺序似乎没有修复。

1 个答案:

答案 0 :(得分:2)

  

保存在用户的LocalStorage

服务器端无法访问本地存储(正在呈现标记帮助程序)。因此,没有办法实现这一目标。您也许可以使用会话,然后您可以通过ViewContext在您的代码帮助程序中访问该会话。在标记助手中添加以下属性:

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

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