如何在taghelpers之间共享数据?

时间:2019-05-16 14:27:26

标签: c# asp.net-core asp.net-core-tag-helpers

我有一个包含两个tagHelpers的类。

[htmlTargetElement("div")]
public class DivTagHelper :TagHelpers {
public override void process(TagHelperContext context, TahHelperOutput output)
 //codes
}

[htmlTargetElement("button", ParentTag="div")]
public class ButtonTagHelper :TagHelpers {
public override void process(TagHelperContext context, TahHelperOutput output)
 //codes
}

一个作用在DIV上,另一个作用在Buttons上。 我需要在tagHelpers(Div)之一中生成值,并将其共享给其他tagHelpers(Button)。

有解决方案吗?

1 个答案:

答案 0 :(得分:3)

您必须使用 TagHelperContext.items 属性。

此属性是词典的集合,可以用作在标签助手之间共享数据的地方。

[htmlTargetElement("div")]
public class DivTagHelper :TagHelpers {
public override void process(TagHelperContext context, TahHelperOutput output)
 context.Items["myData"]="somethings";
}


[htmlTargetElement("button", ParentTag="div")]
public class ButtonTagHelper :TagHelpers {
public override void process(TagHelperContext context, TahHelperOutput output)
 string strName=context.Items["myData"];
}