关于 c#:ASP.Net Core 2.1 – 从子 TagHelper 读取 TagHelper 的父属性

ASP.Net Core 2.1 - Reading TagHelper's parent attribute from child TagHelper

我想知道是否可以从 ASP.Net Core 2.1/2.2 版中的子 TagHelper 元素访问父 TagHelper 的属性。

我正在寻找是否有可能存在子-父 TagHelper 关系,其中子可以以某种方式访问??父属性之一(两个 TagHelper 都是自定义 TagHelper)。为了清楚起见,我有一段代码如下所示:

1
2
3
4
5
<radio-group>
    <radio asp-name="radio2" asp-value="one">Some text 1!</radio>
    <radio asp-name="radio2" asp-value="two">Some text 2!</radio>
    <radio asp-name="radio2" asp-value="three">Some text 3!</radio>
</radio-group>

本质上,它只是一个标记为 radio-group 的单个元素内的表单上的一组单选按钮(这后来成为具有单个类的 div 元素,而其他单选元素成为 type="radio")。由于所有这些单选按钮在其组内共享相同的名称,因此我必须为每个按钮分配相同的名称。

现在,是否可以在 radio-group 元素上声明单个属性(例如 asp-child-name 属性),然后可以从子元素访问该属性,这样我就不必分配 asp-name 属性给每个孩子?


如果有人偶然发现这一点,我想出了一个解决我的问题的方法。我不知道 TagHelper Process 的上下文属性的用途。我可以使用 context.Items.Add 方法轻松分配键-对象对,然后使用 context.Items.TryGetValue 方法从子 TagHelper 获取该对象值。