我正在编写一组针对<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值属性。
答案 0 :(得分:0)
简单的答案(不适用于$d = dir('.');
while (($file = $d->read()) !== false) { // iterate all files
if (preg_match('/\.txt$/', $file)) { // filter only file ends with .txt
$contents = explode("\n", file_get_contents($d->path . '/' . $file)); // get file contents, split by \n
array_walk($contents, function(&$item) {
$item .= ' (' . strlen($item) . ')';
}); // add (length) in the end of each line
// display it
echo '<strong>' . $file . '</strong><br>';
echo implode('<br>', $contents);
echo '<hr>';
}
}
和<form>
标签-参见打击)是针对“父”标签助手的,将值存储在<input>
字典中,并且供“子级”标签帮助程序从同一词典中检索值。通过Google搜索“儿童标签助手”,可以找到该方案的许多示例。
(在OP的上下文中)此答案的问题在于,出于某种原因,context.Items
标记帮助程序在其子<form>
标记帮助程序之后后执行。因此,<input>
没有从父FormTagHelper
接收值,而是发现InputTagHelper
字典为空。
我创建了this SO post来询问这种奇怪的行为。