ASP.Net Core: вывод 2 тегов из одного помощника тегов - PullRequest
0 голосов
/ 30 октября 2018

С помощью помощников по тегам в ASP.Net Core можно ли преобразовать 1 тег в 2 тега на корневом уровне? Я знаю, что вы можете полностью удалить тег, используя TagHelperOutput.TagName == null, но мне интересно, как я могу сделать наоборот, чтобы вывести более одного тега.

Например, перейти от:

<canonical href="/testing" />

до:

<link rel="canonical" href="http://www.examples.com/widgets" />
<link rel="next" href="http://www.examples.com/widgets?page=2" />

Вот пример помощника тега, который выводит один из тегов, но не оба:

[HtmlTargetElement("canonical")]
public class CanonicalLinkTagHelper : TagHelper
{
    public string Href { get; set; }
    public override void Process(TagHelperContext context, TagHelperOutput output)
    {
        output.TagName = "link";
        output.Attributes.SetAttribute("rel", "canonical");
        output.Attributes.SetAttribute(new TagHelperAttribute("href", new HtmlString(Href)));
    }
}

1 Ответ

0 голосов
/ 30 октября 2018

Согласно этой документации , после того как вы удалили теги с помощью TagHelperOutput.TagName == null, вы должны иметь возможность добавлять пользовательский HTML, используя output.PostContent.AppendHtml()

Обновление

PostContent добавляется только после. Для замены всего контента вам нужно будет использовать output.Content.SetHtmlContent(

...