ASP.NET MVC, как связать пользовательскую модель для просмотра - PullRequest
3 голосов
/ 15 мая 2009

Я хотел бы связать данные массива для просмотра в ASP.NET MVC, как я могу это сделать?

извините за непонятный вопрос. Прямо сейчас я создал собственный объект (не массив), я попытался передать его в View, но ошибка показывает

"Элемент модели, переданный в словарь, имеет тип« ContactView », но для этого словаря требуется элемент модели типа« System.Collections.Generic.IEnumerable »*

Ответы [ 3 ]

6 голосов
/ 15 мая 2009

Вы можете использовать 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"];

В этом случае вы, вероятно, захотите проверить, не является ли он нулевым, и т. Д. Преимущество этого состоит в том, что если вы выполните рефакторинг, это будет намного проще. Не говоря уже о простоте и типовой безопасности использования строго типизированных объектов.

0 голосов
/ 15 мая 2009

Посмотрите на эту ссылку: http://nerddinnerbook.s3.amazonaws.com/Part6.htm

По сути, вы можете загрузить массив в объект viewdata и использовать его как хотите.

0 голосов
/ 15 мая 2009

Поместите его в ViewData и используйте for..each для его обхода?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...