ASP.Net Core 2.1 - 从子 TagHelper 读取 TagHelper 的父属性

Kru*_*unx 4 c# asp.net-core asp.net-core-tag-helpers

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

我想看看是否有可能建立一种子父 TagHelper 关系,其中子项可以以某种方式访问​​父项的属性之一(两个 TagHelper 都是自定义 TagHelper)。需要明确的是,我有一段代码,如下所示:

<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>
Run Code Online (Sandbox Code Playgroud)

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

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

Kru*_*unx 6

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

注意,父标签助手context.Items.Add必须位于Init方法中,而不是 process 方法中。

渲染子进程调用进程。