Нужна помощь для создания представления, откуда поступают данные из многих моделей - PullRequest
1 голос
/ 09 сентября 2011

Мне нужны некоторые предложения о том, как создать представление, откуда данные поступают из 3/4 моделей. Я приложил изображение, где данные поступают от 3 моделей. Я сделал это в веб-форме, используя 3 разных вида сетки и связывая разные источники данных.

Но теперь я должен сделать то же самое в MVC 3, и мне сложно. Я был бы очень признателен, если бы кто-нибудь дал мне руководство по созданию такого представления.

enter image description here

Ответы [ 4 ]

2 голосов
/ 09 сентября 2011

Я бы определил модель, содержащую 3 свойства

public class CompositeModel
{
   public MenuModel Menu {get; set;}
   public OrderModel Order {get; set;}
   public RestaurantModel Restaurant {get; set;}
}

И передайте эту модель на вид.

0 голосов
/ 09 сентября 2011

Вы можете использовать частичные представления и отображать их на странице или передавать столько данных, сколько хотите через Viewbag.Пример:

ViewBag.Model1 = yourModel1;
ViewBag.SomeData = someOtherData;.....

И затем вы просто используете его:

@ViewBag.Model1

Вы могли бы даже получить данные с помощью вызовов ajax, и, судя по вашему примеру, я бы использовал этот подходи использовать шаблоны jquery для визуализации.

0 голосов
/ 09 сентября 2011

Вы можете использовать Tuple () для возврата более одного набора записей (моделей) в представление. Tuple () - это новая функция в C # 4.0. Посмотреть эту статью о Tuple ().

http://www.abhisheksur.com/2010/11/working-with-tuple-in-c-40.html

0 голосов
/ 09 сентября 2011

Вы можете передать все свои модели как свойства объекта 'Модель', а затем использовать частичные представления для рендеринга каждого раздела, проходя через конкретную модель, которую они используют.

@Html.Partial("ViewName", this.Model.SubModel)

Или используйте дочерние действия и используйте отдельный метод действия для бита страницы. добавить это в родительский вид:

@Html.Action("ActionName", "ViewName")

Преимущество последнего заключается в том, что вы можете использовать политики кэширования (атрибут [OutputCache] в вашем действии) для частей вашей страницы, которые более статичны, чем другие части.

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