2016-11-28 1 views
2

Как получить элемент в качестве содержимого TagHelper?Как получить содержимое элемента (определенного как TagHelper) в TagHelper.Process?

E.g. Элемент определяется как:

<markdown>bla bla</markdown> 

И Helper определяется как:

[HtmlTargetElement("markdown")] 
public class MarkdownTagHelper : TagHelper 
{ 
    public override void Process(TagHelperContext context, TagHelperOutput output) 
    { 
      var c = output.Content.GetContent(); 
      // c is empty; how to get content "bla bla"? 
    } 
} 
+0

Это во время выполнения или проектирования времени? Если это вторая, вы можете найти все классы, реализующие «ITagHelper» в сборках, добавленных в ваш '_ViewImports.cshtml'. В первом случае я не знаю, предоставляет ли ASP.Net Core такую ​​информацию –

+0

Во время выполнения. Содержание элемента. Внутри TagHelper.Proccess. –

+0

Ах, я совершенно неправильно понял вопрос. Да, это возможно с использованием 'output.GetChildContentAsync() ' –

ответ

1

Вы можете использовать output.GetChildContentAsync(), как описано в the docs (стоит прочитать, поскольку он содержит несколько примеров, которые считывают содержимое элемента).

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

public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output) 
{ 
     var c = (await output.GetChildContentAsync()).GetContent(); 
     // transform markdown in c 
} 
+0

Это работает. Спасибо. –

Смежные вопросы