Quantcast
Channel: Planeta Código
Viewing all articles
Browse latest Browse all 2721

Variable not found: Mostrar HTML "crudo" en componentes Blazor

$
0
0
Blazor Hoy va un truquillo rápido sobre Blazor que puede resultar útil en muchos escenarios. Como probablemente sepáis, al igual que ocurre con otras tecnologías, Blazor codifica la salida HTML por motivos de seguridad, de forma que cualquier contenido con código de marcado será mostrado por defecto tal cual, sin interpretar las etiquetas.

Por ejemplo, considerad el siguiente código en un componente Blazor:
<p>This text is encoded: @myHtml</p>

@code {
string myHtml = "Hello, <b>this is bold</b>";
}
El resultado que enviaremos al navegador es el siguiente:
<p>This text is encoded: Hello, &lt;b&gt;this is bold&lt;/b&gt;</p>
Y, por tanto, nuestros usuarios podrán leer literalmente este párrafo:
This text is encoded: Hello, <b>this is bold</b>
Normalmente no es eso lo que queremos mostrarles, ¿verdad?

Para conseguir que un contenido HTML sea interpretado apropiadamente debemos anular la codificación por defecto de Blazor, para lo que utilizaremos el tipo de datos MarkupString. Esta estructura, definida en Microsoft.AspNetCore.Components, permite indicar al motor de renderizado HTML que su contenido no debe ser codificado y, por tanto, debe ser incluido literalmente en la página.

El siguiente código mostrará en el navegador el texto "This text is not encoded: Hello this is bold" (negrita incluida):
<p>This text is not encoded: @myMarkup</p>

@code {
MarkupString myMarkup = new MarkupString("Hello, <b>this is bold</b>");
}
Para simplificar un poco su implementación, MarkupString define la operación de conversión explícita desde string, por lo que podemos hacer casting directo sobre la marcha en el momento del renderizado:
<p>This text is encoded: @myHtml</p>
<p>This text is not encoded: @((MarkupString)myHtml)</p>

@code {
string myHtml = "Hello, <b>this is bold</b>";
}
Y el resultado visible en el navegador será el esperado:
This text is encoded: Hello, &lt;b&gt;this is bold&lt;/b&gt;
This text is not encoded: Hello, this is bold
Espero que os sea de utilidad :)

Publicado en: www.variablenotfound.com.

Viewing all articles
Browse latest Browse all 2721

Trending Articles


Vimeo 10.7.0 by Vimeo.com, Inc.


Sapos para colorear


Tagalog Love Quotes – Nagmamahal


Break up Quotes Tagalog Love Quote – Broken Hearted Quotes Tagalog


Patama Quotes : Tagalog Inspirational Quotes


Tagalog Quotes To Move on and More Love Love Love Quotes


5 Tagalog Relationship Rules


Long distances monthsary message tagalog


Re:Mutton Pies (lleechef)


Vimeo 10.7.1 by Vimeo.com, Inc.


Pokemon para colorear


mayabang Quotes, Torpe Quotes, tanga Quotes


Tagalog Quotes About Crush – Tagalog Love Quotes


OFW quotes : Pinoy Tagalog Quotes


Long Distance Relationship Tagalog Love Quotes


Tropa Quotes


Best Crush Tagalog Quotes And Sayings 2017


“BAHAY KUBO HUGOT”


FORECLOSURE OF REAL ESTATE MORTGAGE


Girasoles para colorear