Mir ist bewusst, dass Sie nicht auf einen Wert per Index zugreifen können, wenn Sie eine IEnumerable<T>
verwenden.Verwenden einer Razor For-Schleife in einem IEnumerable ViewModel - Probleme beim Zugriff nach Index
Hier ist meine Ansicht:
@model IList<CustomerViewModel>
@for (int i = 0; i < Model.Count - 1; i++)
{
@Model[i].Name
}
Beachten Sie, wie ich die ViewModel
vom Typ vornehmen müssen IList
um Index zu verwenden.
Hier ist mein Controller:
public IActionResult Index()
{
IList<Customer> customers = _ctx.Reviews.GetCustomers().ToList();
return View(customers.Select(c => Mapper.Map<CustomerViewModel>(c)));
}
ich eine Störung erhalte, die sagen, dass das Modellelement in die ViewDataDictionary
weitergegeben falsch ist.
Das macht Sinn, weil ich denke, dass ein IQueryable geht? Aus diesem Grund versuche ich, die ViewModel
vom Typ IEnumerable
zu behalten und trotzdem eine for-Schleife zu verwenden.
'return View;' (customers.Select (c => Mapper.Map (c)) ToList().). Aber Sie können immer eine 'foreach'-Schleife in der Ansicht verwenden, wenn Sie keine Formularsteuerelemente erstellen (oder wenn Sie eine' EditorTemplate' verwenden) –
wäre eine '@ foreach' eine Option für Sie? Schauen Sie sich auch den Fall Ihrer Variablen an (Klein- und Großbuchstaben "m") – khlr
@khlr Ich denke, ich könnte eine foreach verwenden ... Mein ultimatives Ziel ist es, eine CSS-Klasse zu jedem anderen Element in der Liste hinzufügen zu können beim Schleifen. Ich dachte mir, ich müsste irgendwie den Index dazu benutzen. –