MVC View Inheritance - PullRequest
       12

MVC View Inheritance

2 голосов
/ 08 января 2009

Например: Допустим, я хочу вернуть представление , которое отображает список автомобилей, а также показывает раздел дилеров в вашем регионе. Это две несвязанные части данных.

My view наследует список автомобилей, подобный следующему:

public partial class CarLot : ViewPage<List<Cars>>
{

}

Теперь с контроллера я могу вернуть view , как показано ниже:

return View(Model.GetCars());

Чтобы отобразить это, моя разметка будет выглядеть примерно так:

<% foreach (Car myCar in ViewData.Model)
{some html here}
%>

Это касается списка автомобилей, но у меня вопрос, как мне обработать список дилеров? Поддерживает ли view множественное наследование или мне придется снова нажать model для формирования разметки? Я знаю, что это можно сделать таким образом, но не уверен, что это лучшая практика.

Ответы [ 2 ]

18 голосов
/ 08 января 2009

Создать объект передачи данных

public class CarLotViewModel
{
     public List<Car> Cars { get; set; }
     public List<Dealer> NearbyDealers { get; set; }
}

Настройте вид для использования модели вида:

public partial class CarLot : ViewPage<CarLotViewModel>
{    
}

Тогда в вашем контроллере:

CarLotViewModel model = new CarLotViewModel();
model.Cars = GetCars();
model.NearbyDealers = GetDealers();
return View(model);

Затем перечислите каждую коллекцию на ваш взгляд:

<% foreach (Car car in ViewData.Model.Cars) { %>
....
<% foreach (Dealer dealer in ViewData.Model.NearbyDealers) { %>
0 голосов
/ 27 марта 2009

Настройте вид для использования модели вида:

публичный частичный класс CarLot: ViewPage {}

В MVC 1.0 отсутствует кодовый код. Как настроить вид для использования модели представления?

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