MVC3 Razor: visualización de html dentro de bloques de código


131

En mis archivos cshtml tengo muchos bloques con cosas como esta:

@if(Model.foo)
{
    <span>Hello World</span>
}

La única razón por la que existe el lapso es porque no puedo encontrar otra forma de obligarlo a reconocer que "Hello World" es parte del html a menos que lo rodee con etiquetas html. ¿Hay una buena manera de escapar del código que no implica agregar etiquetas sin sentido a la pantalla?

Respuestas:


226

Podrías usar @:para escapar:

@if(Model.foo)
{
    @:Hello World
}

o la <text>etiqueta especial que no se muestra en la respuesta:

@if(Model.foo)
{
    <text>Hello World</text>
}


10

Puede agregar texto de la siguiente manera:

@if(Model.foo)
{
    @:Hello World
}

cuando usa la @maquinilla de afeitar, cambie al modo de bloqueo de código. Por lo tanto, debe especificar el texto como arriba.



8

muchos desarrolladores han proporcionado muchas formas anteriores ... aquí hay una más que funciona bien en MVC 4 ... Espero que también funcione para MVC 3 ...

@if(Model.foo)
{
    @Html.Label("Hello World")
}

0

Las respuestas anteriores son geniales. Voy a incluir un enlace al artículo de Scott Guthrie sobre esto, ya que muestra más ejemplos y explicaciones.

https://weblogs.asp.net/scottgu/asp-net-mvc-3-razor-s-and-lt-text-gt-syntax

@if (p.UnitsInStock == 0 {
  <text>
    Donec in ante vitae purus consequat laoreet ut elementum
    purus. Ut ut tempus nulla, quis ultrices est. Integer
    pharetra ante in lectus porta, a lacinia ex faucibus. 
    Aliquam magna risus, pretium vel neque at, laoreet 
    ultrices lectus. Morbi posuere luctus risus. Nullam 
    tincidunt massa egestas nunc tempor scelerisque.  
  </text>
}


@if (p.UnitsInStock == 0 {
  @: Line 1
  @: Line 2
  @: Line 3
}

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.