Передать информацию между помощниками тегов? - PullRequest
0 голосов
/ 14 июня 2019

Я пишу набор помощников тегов, например, для элементов <form> и <input>.Я хочу добавить пользовательский атрибут к элементу <form> и получить значение этого атрибута в элементе <input>.Итак, если мой HTML выглядит следующим образом:

<form xx-value='123'>
  <input asp-for='Something' />
</form>

, тогда в моем InputTagHelper я бы хотел получить значение 123, указанное для атрибута xx-value.

Есть ли какой-то способ передачи данных между помощниками тегов?

Рассмотрим случай, когда у меня есть эта разметка:

<form xx-value='123'>
  <input asp-for='Something' />
</form>
<form>
  <input asp-for='SomethingElse' />
</form>

В этом случае первыйвызов InputTagHelper получит значение 123. Но второй вызов InputTagHelper получит значение 0, так как его родительский тег <form> не определяет магический атрибут ххх-значения.

1 Ответ

0 голосов
/ 17 июня 2019

Простой ответ (который не работает для тегов <form> и <input> - см. Удар) - для «родительского» тега-помощника для сохранения значения в словаре context.Items и для «дочернего» тега помощник (и) для получения значения из того же словаря. Поиск в Google «помощника по дочерним тегам» дает множество примеров этой схемы.

Проблема с этим ответом (в контексте OP) заключается в том, что по какой-то причине <form> помощник по тегам выполняет после своего дочернего <input> помощника по тегам. Таким образом, вместо получения значения от родителя FormTagHelper, InputTagHelper обнаруживает, что словарь context.Items пуст.

Я создал этот пост , чтобы спросить об этом странном поведении.

...