Nach this article, wenn wir mehrere Tag-Helfer (zielgerichtet auf das gleiche Tag) verwenden und in jedem von ihnen werden wir await output.GetChildContentAsync()
verwenden HTML-Inhalt erhalten, die wir kommen das Problem mit der gecachten Ausgabe:TagHelper zwischengespeichert Ausgabe durch Aufruf von GetChildContentAsync() und Content.GetContent()
Das Problem ist, dass die Tag-Helper-Ausgabe zwischengespeichert wird, und wenn der WWW-Tag-Helfer ausgeführt wird, überschreibt es die zwischengespeicherte Ausgabe von dem HTTP-Tag-Helfer.
var childContent = output.Content.IsModified ? output.Content.GetContent() : (await output.GetChildContentAsync()).GetContent();
Beschreibung dieses Verhaltens:
Das Problem durch die Verwendung Aussage wie fixiert ist
Der obige Code überprüft, ob der Inhalt geändert wurde, und es, wenn hat, bekommt es den Inhalt aus dem Ausgabepuffer.
Die Fragen sind:
1) Was ist der Unterschied beetween TagHelperOutput.GetChildContentAsync()
und TagHelperOutput.Content.GetContent()
unter der Haube?
2) Welche Methode schreibt das Ergebnis in den Puffer?
3) Was bedeutet es "im Cache gespeicherte Ausgabe": ASP.NET MVC Core Caches erste Rasierer Markup oder HTML Markup als Ergebnis von TagHelper
aufrufen?
Vielen Dank im Voraus!