ASP.NETコアTagHelper documentationは、次の例を示します:ネストTagHelpers 6
<website-information info="new WebsiteContext {
Version = new Version(1, 3),
CopyrightYear = 1790,
Approved = true,
TagsToShow = 131 }"/>
を次のように
public class WebsiteContext
{
public Version Version { get; set; }
public int CopyrightYear { get; set; }
public bool Approved { get; set; }
public int TagsToShow { get; set; }
}
[TargetElement("website-information")]
public class WebsiteInformationTagHelper : TagHelper
{
public WebsiteContext Info { get; set; }
public override void Process(TagHelperContext context, TagHelperOutput output)
{
output.TagName = "section";
output.Content.SetContent(
[email protected]"<ul><li><strong>Version:</strong> {Info.Version}</li>
<li><strong>Copyright Year:</strong> {Info.CopyrightYear}</li>
<li><strong>Approved:</strong> {Info.Approved}</li>
<li><strong>Number of tags to show:</strong> {Info.TagsToShow}</li></ul>");
output.TagMode = TagMode.StartTagAndEndTag;
}
}
これは、あなたのカミソリ.cshtmlで使用することができますこれにより、次のHTMLが生成されます。
<section>
<ul>
<li><strong>Version:</strong> 1.3</li>
<li><strong>Copyright Year:</strong> 1790</li>
<li><strong>Approved:</strong> true</li>
<li><strong>Number of tags to show:</strong> 131 </li>
</ul>
</section>
これはかなり醜いタグヘルパーの構文です。別のタグヘルパーを入れ子にして完全なインテリセンスを得るために、ウェブサイト情報の唯一の許可された子がコンテキストになるようにする方法がありますか?以下の例を参照してください:私のユースケースで
<website-information>
<context version="1.3" copyright="1790" approved tags-to-show="131"/>
</website-information>
を、ウェブサイトの情報要素は、すでに多くの属性を持っており、私は1つの以上別のネストされた要素を追加します。
UPDATE
私はTagHelpersため、この機能を実装するためにASP.NETのGitHubページthis提案を調達しています。
単一の 'info'パラメータの代わりに' web-information'タグヘルパーに分離したパラメータを追加するだけではどうですか?あなたはタグヘルパーをネストすることができますが、 ''ヘルパーは ' 'ヘルパー –
@ DanielJ.Gの中に入れ子になっているだけです。 1.あなたはすでに '' '' '' '' '' '' 'web-information''に多くの属性を持っていました。2.コンテキストがもっと論理的な意味を子要素にしていたならば3.' 'context''プロパティを論理的にグループ化すれば複数の '' context''要素を持っています。 –