Вы можете использовать ViewData [], но лучшим способом было бы создать класс представления и вернуть его.
Итак, представление, которое вы хотите отправить, называется «Контакты». Создайте новый класс View и верните его. так что вместо этого:
public ActionResult Contacts(){
ViewData["contacts"] = arrayOfContacts[];
...
return View();
}
Вы можете получить сильно типизированных, делая это:
public class ContactsView(){
Object[] ContactsList {get;set;}
}
public ActionResult Contacts(){
...
return View(new ContactsView(){
ContactsList = arrayOfContacts[];
});
}
Тогда в реальной точки зрения, то его можно будет сильно типизированных принимая объекты типа ContactsView. Таким образом, в действительном View, которые он унаследует так:
... Inherits="System.Web.Mvc.ViewPage<ContactsView>" ...
, который позволяет назвать ваш массив как ...
Model.ContactsList
в противоположность этому:
object[] arrayOfItems = (Object[])ViewData["theContactsList"];
В этом случае вы, вероятно, захотите проверить, не является ли оно нулевым и т. Д. Преимущество этого в том, что если вы реорганизуете это намного проще. Не говоря уже о легкости и типе безопасности использования сильно типизированных объектов.
Эрик, сообщение об ошибке говорит точно, что не так. Вы передаете ему пользовательский объект (а не массив), но он ожидает общий набор объектов. –