Вы должны использовать оператор for, а не foreach.
<div class="foo">
@for(int i = 0; i < ViewBag.Photos.Count; i++)
{
<div class="@((i == 0) ? "item active" : "item")">
<img src="@ViewBag.Photos[i].Photo" alt="@ViewBag.Photos[i].AltText">
<div class="bar">
<p>Test</p>
</div>
</div>
}
</div>
Я предполагаю, что Photos - это массив некоторого класса, который оборачивает как фотографию, так и альтернативный текст.Если нет, вы бы сделали что-то вроде этого:
<img src="@ViewBag.Photos[i]" alt="@ViewBag.AltText[i]">
Однако вы действительно должны использовать модель представления.Вам, вероятно, также лучше использовать DisplayTemplate.Но это должно помочь вам начать.
ОБНОВЛЕНИЕ: Я написал бы код, как указано выше, используя условный оператор.Я думаю, что легче читать и меньше сбивать с толку.