Używam IEnumerable rozszerzenie pętli kolekcji, a także uzyskać swój indeks:Zastosowanie ForEach rozszerzenie Razor
@Model.ForEach((card, i) => {
@<li class="[email protected](i)">@card.Text</li>;
})
Rozszerzenie ForEach jest następujący:
public static void ForEach<T>(this IEnumerable<T> source, Action<T, Int32> action) {
Int32 i = 0;
foreach (T item in source) {
action(item, i);
i++;
}
} // ForEach
Ale gdy próbuję aby go skompilować, pojawia się następujący komunikat o błędzie:
Argument 1: nie można przekonwertować z "pustki" na "System.Web. Strony internetowe.HelperResult '
Jak mogę to rozwiązać? Czy potrzebuję nowego rozszerzenia?
ciekawy problem - łatwo rozwiązane tylko przez używając '@for (...)' w widoku zamiast metody rozszerzenia oczywiście. – James
Inną kwestią jest to, że treść Twojej klauzuli foreach nie przekłada się na delegata akcji. Próbujesz sugerować przejście brzytwy z kodu do html, którego nie rozumie. –