Cambia condicionalmente la clase CSS en la vista Razor

Necesito cambiar la clase CSS de la etiqueta

con la clase ‘forumChild’. Tiene que cambiar cada 3 bucles del bucle foreach.

¿Hay alguna manera de hacer esto desde dentro del control?

 

The Forum

@foreach (var item in Model) {
Not Found
@foreach (var comment in item.Blog.comment) { var db = new ACapture.Models.ACaptureDB(); var Name = from p in db.Profile.AsEnumerable() where (p.AccountID == comment.AccountID) select p;
@comment.Commentation
}
}

Gracias por adelantado

  @{ int counter=0; } @foreach (var item in Model) { counter++; 
Not Found //other markup also here
if (counter == 6) { counter = 0; } }

Donde classRed y classBlue son las clases de CSS

Cómo manejamos este problema:

1) necesitas crear un método auxiliar que devuelva clase css por algún código.

 string GetDivClass(int code) { var classes = new [] {"first", "second", "third"}; return classes[code]; } 

2) crear contador / índice e incrementarlo en el bucle cada vez.

3) invocar método de ayuda como GetDivClass(index % 3) en el elemento div .

PD

Solo es POC, así que no lo use en una aplicación real (necesita agregar una lógica de validación y mover la inicialización de ‘clases’ a otro lugar).

Puede escribir cualquier código que desee en una vista Razor, por lo que para hacer lo que está pensando, podría hacer algo como esto (omití la mayoría de las cosas internas):

 @{ var className = "ForumChild"; } 
@for (int i = 0; i < Model.Count; i++) { var item = Model[i]; if (i % 3 == 0) className = GetNewClassName(); // Or whatever
}

Puede agregar una variable de contador para que comience con 1 e incremente en bucle. Verifique si la afirmación es verdadera por% y cambie el nombre de la clase

 @{ int counter = 1;} @foreach (var item in Model) { if( (counter % 3) ==0 ) { 
} else {
} i++;