私はASP.NETコアMVCにintuchucedのTagHelper
の動作と混乱しています。このチュートリアルA working email Tag Helperに続いて、自己終了タグを書く機会があります。この目的のための記事によると、私たちはattbute HtmlTargetElement
を使うべきです。クラスは以下の例のようにdemostratedさ:セルフクローズTagHelperは、兄弟要素のhtmlマークアップをマージします
[HtmlTargetElement("email", TagStructure = TagStructure.WithoutEndTag)]
public class EmailTagHelper : TagHelper
{
private const string EmailDomain = "contoso.com";
public string MailTo { get; set; }
public override void Process(TagHelperContext context, TagHelperOutput output)
{
output.TagName = "a";
var address = MailTo + "@" + EmailDomain;
output.Attributes.SetAttribute("href", "mailto:" + address);
output.Content.SetContent(address);
}
}
のようなかみそりビューでマークアップ:
<strong>Support:</strong>
<email mail-to="Support"/><br />
<strong>Marketing:</strong>
<email mail-to="Marketing"/>
しかし、私が持っている予期しない出力:
<strong>Support:</strong>
<a href="mailto:[email protected]">
<span>Another content</span>
<strong>Marketing:</strong>
</a>
<a href="mailto:[email protected]"></a>
なぜ最初のアンカータグが<span>
が含まれており、 <strong>
のタグコンテンツ?
HtmlTargetElement
属性がなく、終了タグが</email>
の場合、私は正しい行動を取っています。