Старый пост, но ни один из ответов не охватывал этот подход, поэтому я сделаю это.
Поскольку вы используете MVC Razor, использование функции @helper - самый простой, чистый и лучший подход.
В папке App_Code вашего проекта добавьте новый элемент или измените существующий файл CustomeHelpers.cshtml следующим кодом:
@helper AlternateBackground(string color, Int32 iViewBagCount) {
if (iViewBagCount == null) { iViewBagCount = 0; }
<text>style="background-color:@(iViewBagCount % 2 == 1 ? color : "none")"</text>
iViewBagCount++;
}
Тогда, на ваш взгляд, ваш цикл foreach будет выглядеть следующим образом:
@foreach (var item in Model) {
<tr @CustomHelpers.AlternateBackground("#ECEDEE", Model.Count())>
<td>@item.DisplayName</td>
<td>@item.Currency</td>
<td>@String.Format("{0:dd/MM/yyyy}", item.CreatedOn)</td>
<td>@String.Format("{0:g}", item.CreatedBy)</td>
<td>@Html.ActionLink("Edit", "Edit", new { id = item.Id })</td>
</tr>
}
Вы можете передать идентификатор цвета, например "#ECEDEE" или названный цвет "Синий".
Таким образом, вам нужно всего лишь добавить функцию @Helper один раз, и она будет распространяться по всему вашему приложению, и этоможно вызывать для каждого представления по мере необходимости, ссылаясь на функцию @CustomHelpers.