Новое в MVC | Данные в представлении из разных источников - PullRequest
1 голос
/ 25 ноября 2008

ОК, так что я смотрел некоторые видео MVC и читал некоторые биты. Я новичок во всем шаблоне MVC, и до сих пор радостно погружался в мир веб-форм!

Как и во многих других демонстрациях, все кажется великолепным, и я уверен, что у меня будет много вещей, которые я не понимаю по мере продвижения, но в первую очередь ...

Я вижу, что у вас может быть строго типизированное представление, которое получает данные от контроллера. Что произойдет, если мне нужны данные в представлении объектов разных типов? Скажи, я хочу показать сетку автомобилей и сетку людей, которые никак не связаны ??

Thx Стив

Ответы [ 4 ]

4 голосов
/ 25 ноября 2008

Настройте свой строго типизированный класс ViewData с двумя свойствами, подобными этому

public class MyViewData 
{ 
  public IEnumerable<Car> Cars { get; set; }
  public IEnumerable<People> People { get; set; }
}

и затем заполните их в контроллере, Извините за дубликат. В хорошем духе MVC старайтесь по возможности использовать интерфейсы, чтобы сделать ваш код более общим

2 голосов
/ 25 ноября 2008

Вместо того, чтобы искусственно группировать модели вместе, вы можете хранить их отдельно (логически и физически), а затем в представлении объединять различные части.

Проверьте этот пост для отличного объяснения [текст ссылки] [1].

[1]: http://blog.codeville.net/2008/10/14/partial-requests-in-aspnet-mvc/ частичные запросы

0 голосов
/ 25 ноября 2008

Я думаю, что в этой ситуации лучше всего было бы создать класс в папке Models для хранения обоих этих типов.

Пример:

public class CarsPeopleModel
    {
        public List<Car> Cars { get; set; }
        public List<Person> People { get; set; }
    }

Тогда ваш взгляд будет:

public partial class Index : ViewPage<MvcApplication1.Models.CarsPeopleModel>
    {
    }
0 голосов
/ 25 ноября 2008

Вы можете либо передать оба объекта в хеш-таблицу ViewData, либо создать MyViewViewModel, добавить два свойства и установить их оба с вашего контроллера.

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