können Sie die Viewdata [] verwenden, aber der beste Weg wäre, um tatsächlich eine Ansichtsklasse zu erstellen und zurück.
Sagen wir also die Ansicht, die Sie die Daten senden möchten, ist Kontakte genannt. Erstellen Sie eine neue View-Klasse und geben Sie diese zurück. so statt dessen:
public ActionResult Contacts(){
ViewData["contacts"] = arrayOfContacts[];
...
return View();
}
Sie erhalten stark typisierte Ansichten durch dies zu tun:
public class ContactsView(){
Object[] ContactsList {get;set;}
}
public ActionResult Contacts(){
...
return View(new ContactsView(){
ContactsList = arrayOfContacts[];
});
}
Dann in der aktuellen Ansicht, können Sie es stark durch die Annahme Objekte vom Typ ContactsView eingegeben werden. Auf diese Weise in der aktuellen Ansicht, haben erben es etwa so:
... Inherits="System.Web.Mvc.ViewPage<ContactsView>" ...
dem Sie Ihre Array wie ... auf diese
Model.ContactsList
im Gegensatz nennen können:
object[] arrayOfItems = (Object[])ViewData["theContactsList"];
In diesem Fall möchten Sie wahrscheinlich überprüfen, ob es nicht null ist usw. Der Vorteil davon ist, dass wenn Sie es umgestalten, es viel einfacher ist. Ganz zu schweigen von der Leichtigkeit und Typensicherheit stark typisierter Objekte.
Eric, die Fehlermeldung sagt genau was falsch ist. Sie übergeben es ein benutzerdefiniertes Objekt (kein Array), aber es erwartet eine generische Auflistung von Objekten. –