在Razor视图中有条件地更改CSS类

我需要使用’forumChild’类更改

标记的CSS类。 它必须改变foreach循环的每3个循环。

有没有办法在控件内执行此操作?

 

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
}
}

提前致谢

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

classRedclassBlue是CSS类

我们如何处理这个问题:

1)你需要创建一个辅助方法,它将通过一些代码返回css类。

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

2)创建计数器/索引并在每次循环中递增它。

3)在div元素处调用GetDivClass(index % 3)等辅助方法。

PS

它只是POC,所以不要在实际应用程序中使用它(您需要添加validation逻辑并将’类’初始化移动到另一个地方)。

您可以将任何您喜欢的代码写入Razor视图,这样做你想要做的事情,你可以做这样的事情(我遗漏了大部分内部的东西):

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

您可以添加一个计数器变量,以1开头并循环递增。 使用%检查if语句是否为true并更改类名

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