Tengo un poco de HTML que se almacena en una cadena. ¿Cómo puedo hacer que esto sea una vista Blazor / Razor sin codificación HTML automática?
La característica para representar HTML sin procesar se agregó en la versión Blazor
0.5.0. Este es el ejemplo de cómo se puede representar HTML sin procesar desde una string
contiene contenido HTML:
@((MarkupString)myMarkup)
@functions {
string myMarkup = "<p class='markup'>This is a <em>markup string</em>.</p>";
}
Se puede encontrar más información en el anuncio "Blazor 0.5.0 experimental release now available" .
No en este momento, pero probablemente lo tenga en la próxima versión: siga esto
Solución (de ese problema):
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; });