Согласно этой статье если мы используем несколько хелперов тегов (нацеленных на один и тот же тег) и в каждом из них мы будем использовать await output.GetChildContentAsync() для получения html-контента, мы придем к проблеме с кешированием вывода:
Проблема заключается в том, что выходные данные помощника тега кэшируются, и когда помощник тега WWW запускается, он перезаписывает кэшированный вывод помощника тега HTTP.
Проблема устраняется с помощью оператора вроде:
var childContent = output.Content.IsModified ? output.Content.GetContent() :
(await output.GetChildContentAsync()).GetContent();
Описание этого поведения:
Приведенный выше код проверяет, было ли изменено содержимое, и если да, то получает содержимое из выходного буфера.
Вопросы:
1) В чем разница между TagHelperOutput.GetChildContentAsync() и TagHelperOutput.Content.GetContent() под капотом?
2) Какой метод записывает результат в буфер?
3) Что означает "кэшированный вывод": ASP.NET MVC Core кэширует исходную разметку бритвы или разметку html в результате вызова TagHelper?
Заранее спасибо!