Как передать список данных между представлениями в MVC 3.0? - PullRequest
1 голос
/ 05 мая 2011

Я создаю свое первое приложение MVC после изучения учебника Music Store и столкнулся с некоторыми проблемами при попытке передачи данных между строго типизированными представлениями.

У меня есть два типа данных со своими строго типизированными представлениями

Сайт клиента для клиента

В индексном представлении сайта клиента (который возвращает несколько сайтов клиентов) мне нужноотображать имя клиента рядом с каждым адресом сайта, представление строго типизировано для сайта клиента, но имя клиента хранится в таблице клиентов, поэтому оно не позволит мне получить доступ к этому руководству из модели?

Я знаю, чтоОдним из вариантов является использование viewbag, я успешно сделал это, чтобы отобразить имя клиента в раскрывающемся списке на моем представлении создания, используя следующий код

Customer Site Controller //////////

public ActionResult Create()
    {
        ViewBag.Id = new SelectList(db.Customers, "Id", "CustomerName");
        return View();
    } 

Представление индекса //////////

@Html.DropDownListFor(model => model.CustomerId,   (IEnumerable<SelectListItem>)ViewBag.Id)

Это работает нормально, но теперь мне нужно, чтобы имя клиента вставлялось в каждую строку таблицы, а не в отбрасываниевниз список.Может кто-нибудь любезно предложить какие-либо указатели о том, как я могу получить список имен клиентов, которые будут отображаться в таблице в представлении индекса сайта клиента?

Также является ли пакет просмотра лучшим способом передачи данных между представлениями или есть другие альтернативные методы?Есть ли способ строго ввести представление с несколькими типами данных?

Любой совет, который кто-либо может предложить, был бы полезен.

С уважением

Лиам

1 Ответ

1 голос
/ 05 мая 2011

В ответ на эту часть вашего вопроса:

Также является ли сумка для просмотра лучшим способом передачи данных между представлениями или есть другие альтернативные методы?Есть ли способ строго ввести представление с несколькими типами данных?

Ответ - Да.Создайте новый класс, например, так:

public class SomeViewModel {
    public Customer SomeCustomer { get; set; }

    public CustomerSite SomeCustomerSite { get; set; }
}

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

...