Saltar al contenido

Html.Raw () en la vista ASP.NET MVC Razor

Solución:

Html.Raw() devoluciones IHtmlString, no lo ordinario string. Por lo tanto, no puede escribirlos en lados opuestos de : operador. Quitar eso .ToString() vocación

@{int count = 0;}
@foreach (var item in Model.Resources)
{
    @(count <= 3 ? Html.Raw("<div class="resource-row">"): Html.Raw("")) 
    // some code
    @(count <= 3 ? Html.Raw("</div>") : Html.Raw("")) 
    @(count++)

}

Por cierto, volviendo IHtmlString es la forma en que MVC reconoce el contenido html y no lo codifica. Incluso si no ha causado errores del compilador, llamar ToString() destruiría el significado de Html.Raw()

La respuesta aceptada es correcta, pero prefiero:

@{int count = 0;} 
@foreach (var item in Model.Resources) 
{ 
    @Html.Raw(count <= 3 ? "<div class="resource-row">" : "")  
    // some code 
    @Html.Raw(count <= 3 ? "</div>" : "")  
    @(count++)
} 

Espero que esto inspire a alguien, aunque llego tarde a la fiesta.

No deberías estar llamando .ToString().

Como indica claramente el mensaje de error, está escribiendo un condicional en el que la mitad es un IHtmlString y la otra mitad es una cuerda.
Eso no tiene sentido, ya que el compilador no sabe qué tipo debería ser la expresión completa.


Hay Nunca una razón para llamar Html.Raw(...).ToString().
Html.Raw devuelve un HtmlString instancia que envuelve la cadena original.
La salida de la página de Razor sabe que no debe escapar HtmlString instancias.

Sin embargo, llamando HtmlString.ToString() solo devuelve el original string valor de nuevo; no logra nada.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *