J'ai du HTML qui est stocké dans une chaîne. Comment puis-je rendre ceci est une vue Blazor / Razor sans encodage HTML automatique?
La fonctionnalité pour rendre le HTML brut a été ajoutée dans la version Blazor
0.5.0. Voici l'exemple de la façon dont le HTML brut peut être rendu à partir d'une string
contenant du contenu HTML:
@((MarkupString)myMarkup)
@functions {
string myMarkup = "<p class='markup'>This is a <em>markup string</em>.</p>";
}
Plus d'informations peuvent être trouvées dans l' annonce "La version expérimentale de Blazor 0.5.0 est maintenant disponible" .
Pas maintenant, mais l’aura probablement dans la prochaine version: Suivez ceci
Solution de contournement (à partir de ce problème):
cshtml
@functions{ [Parameter] string Content { get; set; } private ElementRef Span; protected override void OnAfterRender() { Microsoft.AspNetCore.Blazor.Browser.Interop.RegisteredFunction.Invoke("RawHtml", Span, Content); } }
index.html
Blazor.registerFunction('RawHtml', function (element, value) { element.innerHTML = value; for (var i = element.childNodes.length - 1; i >= 0; i--) { var childNode = element.childNodes[i]; element.parentNode.insertBefore(childNode, element); } element.parentNode.removeChild(element); return true; });