Как создать модель представления Asp.Net MVC 3 - PullRequest
1 голос
/ 01 ноября 2011

У меня есть база данных, через которую я подключаюсь, используя Entity Framework. My Home View состоит из множества частичных представлений, которые отображают различные части приложения. В моем контроллере я хотел бы отправить модель, содержащую все эти различные объекты данных Entity, в мое представление, а затем отправить необходимую информацию в мои конкретные частичные представления. Я считаю, что мне нужна модель представления для этого, но никогда не делал этого раньше. Позвольте мне подвести итог моей цели: У меня есть четыре таблицы: currentFav, TopTenFav, жанры и песни Я создал класс репозитория с некоторыми функциями запросов, такими как поиск всех песен, добавление песни и так далее. Мой индексный вид делится на частичные, такие как текущий фаворит, десятка и жанры.

Мой вопрос заключается в том, как бы я отправил свою модель из контроллера на мое представление, а затем оттуда на все мои частичные представления, кто-нибудь получил идею? ТНХ

1 Ответ

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

Как я бы спроектировал вашу ViewModel, чтобы создать интерфейс для каждого из ваших частичных представлений так, чтобы:

interface IPartialView1  //Name it appropriately
{
   currentFav CurrentFav { get; }
}

Тогда на вашей фактической модели представления:

class HomeViewModel : IPartialView1, IPartialView2,....
{
   currentFav CurrentFav { get; set; }
}

Заполните HomeViewModel так, как считаете нужным, и в ваших частичных представлениях:

<!-- CurrentFav-Partial.cshtml -->
@Model IPartialView1

<span>@model.CurrentFav.color</span>

Это позволяет вам создавать любую модель, которую вы хотите передать в представление, и до тех пор, пока у нее есть интерфейс, каждый из Partials должен отображать это, как может. Каждая ViewModel может содержать любое количество других моделей / классов через интерфейсы для любого типа создаваемого вами представления.

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