在标签助手之间传递信息?
Pass info between tag helpers?
我正在编写一组标签助手,例如,针对 <form>
和 <input>
元素。我想向 <form>
元素添加自定义属性,并在包含的 <input>
元素中检索该属性的值。所以,如果我的 HTML 看起来像这样:
<form xx-value='123'>
<input asp-for='Something' />
</form>
然后在我的 InputTagHelper
中,我想检索为 xx-value
属性指定的值 123。
是否有设计好的方式在标签助手之间传递这样的数据?
考虑我有这个标记的情况:
<form xx-value='123'>
<input asp-for='Something' />
</form>
<form>
<input asp-for='SomethingElse' />
</form>
在这种情况下,InputTagHelper
的第一次调用将获得值 123。但是 InputTagHelper
的第二次调用将获得值 0,因为其父级 <form>
标记没有指定神奇的 xxx 值属性。
简单的答案(不适用于 <form>
和 <input>
标签 - 见下文)是 "parent" 标签助手将值存储在 context.Items
字典和 "child" 标签助手从同一个字典中检索值。 Google 搜索 "child tag helper" 会产生许多此方案的示例。
这个答案的问题(在 OP 的上下文中)是,出于某种原因,<form>
标签助手在 其子 [=11] 之后执行 =] 标签助手。因此,InputTagHelper
没有从父 FormTagHelper
接收值,而是发现 context.Items
字典是空的。
我创建 是为了询问这种奇怪的行为。
我正在编写一组标签助手,例如,针对 <form>
和 <input>
元素。我想向 <form>
元素添加自定义属性,并在包含的 <input>
元素中检索该属性的值。所以,如果我的 HTML 看起来像这样:
<form xx-value='123'>
<input asp-for='Something' />
</form>
然后在我的 InputTagHelper
中,我想检索为 xx-value
属性指定的值 123。
是否有设计好的方式在标签助手之间传递这样的数据?
考虑我有这个标记的情况:
<form xx-value='123'>
<input asp-for='Something' />
</form>
<form>
<input asp-for='SomethingElse' />
</form>
在这种情况下,InputTagHelper
的第一次调用将获得值 123。但是 InputTagHelper
的第二次调用将获得值 0,因为其父级 <form>
标记没有指定神奇的 xxx 值属性。
简单的答案(不适用于 <form>
和 <input>
标签 - 见下文)是 "parent" 标签助手将值存储在 context.Items
字典和 "child" 标签助手从同一个字典中检索值。 Google 搜索 "child tag helper" 会产生许多此方案的示例。
这个答案的问题(在 OP 的上下文中)是,出于某种原因,<form>
标签助手在 其子 [=11] 之后执行 =] 标签助手。因此,InputTagHelper
没有从父 FormTagHelper
接收值,而是发现 context.Items
字典是空的。
我创建