2012-03-21 12 views
22

¿Cómo puedo agregar html a la página desde un if() en un @foreach(). Obtengo ningún error específico, simplemente no toma el segundo if(). Lo escribe como texto.¿Cómo agregar html a la página dentro de una declaración Razor if en un foreach?

esto es lo que he intentado, pero sin suerte

@foreach (var item in Model) 
    { 
     if (count % 4 == 0 || totaltCount == 1) 
     { 
     <div class="in-instructor-container"> 
      } 
      <div class="in-instructor"> 
       <h3>@item.Name</h3> 
       @item.Information 
      </div> 
     if ((count - 1) % 3 == 0 || count == totaltCount) { 
     </div> 
     } 

     count++; 
    } 

mi html pones así

 <div class="in-instructor-container"> 
      } 
      <div class="in-instructor"> 

       <h3>Test Person 0</h3> 
       bla bla bla bla bla bla bla 
      </div> 
     if ((count - 1) % 3 == 0 || count == totaltCount) { 
     </div> 
+0

-1 ¿para qué? por favor motive –

+0

No fui el que votó negativamente por usted, pero sin más información no obtendrá ninguna ayuda. ¿Hubo un error? ¿Cuál fue el problema? –

Respuesta

45

Es necesario añadir @: en frente del HTML dentro de las sentencias if:

@foreach (var item in Model) 
{ 
    if (count % 4 == 0 || totaltCount == 1) 
    { 
     @:<div class="in-instructor-container"> 
    } 
     <div class="in-instructor"> 
      <h3>@item.Name</h3> 
      @item.Information 
     </div> 

    if ((count - 1) % 3 == 0 || count == totaltCount) { 
     @:</div> 
    } 

    count++; 
} 

Encontré esta solución de this pregunta de stackoverflow

+0

muchas gracias, todavía no he estado haciendo tanto mvc 3. –

+0

@ Dejan.S ¡Bienvenido! Aprendí algo nuevo también;). –

+0

He votado vivamente esto un millón de veces si pudiera, ya que había muchas más respuestas en stackoverflow que fueron incorrectas para este problema – pat8719

Cuestiones relacionadas