Передача нескольких моделей в представление - PullRequest
0 голосов
/ 03 ноября 2011

У меня проблемы с передачей нескольких моделей в одно представление. После прочтения других публикаций я понял, что мне нужно создать отдельный класс, создать экземпляр этого класса и вернуть этот экземпляр класса в представление.Однако, как бы я это сделал?

Я хотел использовать Entity Framework и Linq для выполнения запросов.Если вы можете предоставить пример кода для меня, чтобы узнать ...

Ответы [ 3 ]

4 голосов
/ 03 ноября 2011

Вы можете сделать это быстрым и грязным способом, используя динамический:

dynamic viewdata = new ExpandoObject();
viewdata.object1 = Model1;
viewdata.object2 = Model2;

return View(viewdata);

Или вы можете сделать это правильно и создать модель представления.

class ViewModel1 {
  public MyModel Model1 { get; set; }
  public MyOtherModel Model2 { get; set; }
}

ViewModel1 viewdata = new ViewModel1();
viewdata.Model1 = Model1;
viewdata.Model2 = Model2;

return View(viewdata);
0 голосов
/ 03 ноября 2011

Создание модели представления. Модель представления - это модель, которая обычно состоит из других моделей и не привязана к вашей модели данных. Демонстрация MvcMusic имеет хороший пример использования моделей представлений.

Хотя ViewData будет работать небезопасно и в основном зависит от магических строк, поэтому я бы этого избегал.

0 голосов
/ 03 ноября 2011

Использование

public ActionResult Index()
{
    SomeClass1 object1 = new SomeClass1();
    SomeClass2 object2 = new SomeClass2();
    ViewData["someName1"]=object1;
    ViewData["someName2"]=object2;
    return View(ViewData);
}

На странице просмотра вы можете получить к ним доступ как:

<% SomeClass1  object1 = ViewData["someName1"] as SomeClass1; %>
<% SomeClass1  object2 = ViewData["someName2"] as SomeClass2; %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...