Как я могу повторно использовать тип модели из вида в представлении? - PullRequest
0 голосов
/ 28 февраля 2012

Как я могу повторно использовать мой заявленный тип модели? Вверху представления есть объявление

@model mySpace.viewModels.viewModel

Что я хочу сделать, это позже на странице, сделать что-то вроде

@for( viewModel vM in ViewBag.viewModels )
{
 //some foo bar
}

1 Ответ

3 голосов
/ 28 февраля 2012

Если у вас уже есть строго типизированное представление, вам даже не стоит думать о ViewBag / ViewData.Как только вы строго напечатали представление для модели представления, все, что вам нужно сделать в этом представлении, это использовать свойства этой модели представления, например, так:

@foreach (viewModel vm in Model.SomeSubModels)
{
    //some foo bar
}

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

@Html.EditorFor(x => x.SomeSubModels)

или использовать шаблон отображения (если вы хотите отображать значения свойств вашей модели представления только вuser):

@Html.DisplayFor(x => x.SomeSubModels)

Итак, вот пара основных правил, которым нужно следовать при разработке приложения ASP.NET MVC (в таком порядке):

  1. вы забыли о ViewBag /ViewData.Как будто их не было.Вы просто уничтожаете их.Если вы забудете о них, вы окажете реальную услугу себе.
  2. вы определяете модель представления, которая представляет собой класс, содержащий все свойства, которые понадобятся вашему представлению.
  3. у вас есть действие контроллеразапросите ваши репозитории и модели доменов и отобразите результаты в эту модель представления, которая будет передана в представление.
  4. в соответствующем представлении вы просто используете свойства модели представления, предоставленные действием контроллера, для отображения некоторой информации.

Правило № 1. является реальным основами и наиболее важным.Если вы не соблюдаете это правило, вы на самом деле не правильно делаете ASP.NET MVC.

...