Я ищу для использования asp.net MVC для нового проекта. Я посмотрел на разные примеры на asp.net и через Интернет. Я до сих пор не получил ответа, что является лучшим способом объединить вывод различных моделей в один вид. Например, моя домашняя страница будет содержать категории, местоположения, моментальные снимки последних сообщений. Они будут поступать из трех разных моделей. Я создаю единые viewdata со всем в нем и messup внутри представления для размещения контента соответственно?Объединение нескольких выходов в одном представлении в asp.net MVC
2
A
ответ
0
Обычно я создаю один класс модели представления, который объединяет несколько классов модели данных в этом сценарии.
Я считаю, что представление и данные должны представлять собой два разных набора объектов, потому что иногда вам нужно выполнять преобразование данных (например, формирование десятичного числа из класса модели данных в строку в формате валюты в модели вида) в классе контроллера перед этим отправляется на просмотр.
8
Вы создаете ViewModel для домашней странице ... что-то вроде ...
public class MyHomepageViewModel
{
public Categories MyCategories { get; set; }
public Locations MyLocations { get; set; }
public Snapshots MySnapshots { get; set; }
public MyHomepageViewModel(Categories categories, Locations locations, Snapshots snapshots)
{
MyCategories = categories;
MyLocations = locations;
MySnapshots = snapshots;
}
}
, а затем вы сильно ввести свою страницу с этой точки зрения модели, и вы будете иметь доступ ко всему, что вам нужно, на ваш взгляд =)
3
Вы должны Модельное для этого:
public class HomeViewModel {
public IList<Category> Categories;
public IList<Location> Locations;
public IList<Snapshot> Snapshots;
public IList<Post> Recent;
}
Ваш взгляд должен быть строго типизированным:
<%@ Page Inherits="System.Web.Mvc.ViewPage<HomeViewModel>" %>
<!-- <% var categories = Model.Categories %> -->
Смежные вопросы
- 1. Обработка нескольких форм в одном представлении в ASP.NET MVC 4
- 2. Несколько Добавить в одном представлении, ASP.NET MVC
- 3. ASP.NET MVC несколько моделей в одном представлении
- 4. Объединение выходов нескольких запросов в один
- 5. ASP.NET MVC - Объединение нескольких небольших приложений
- 6. Объединение/объединение нескольких приложений в одном
- 7. Объединение выходов в каскаде
- 8. Объединение нескольких, если в одном?
- 9. Объединение нескольких таблиц в одном
- 10. Использование 2 модели в одном представлении в ASP.NET MVC 5
- 11. Разделение двух форм в одном представлении в ASP.Net MVC
- 12. Добавление нескольких моделей в одном представлении
- 13. Несколько моделей в одном представлении ASP.Net
- 14. ASP.NET MVC LIST и создать в одном представлении
- 15. ASP.NET MVC: Как использовать несколько моделей в одном представлении?
- 16. Две модели в одном представлении asp.net mvc 4 не работает
- 17. ASP.NET MVC Создание объекта со связанным объектом в одном представлении
- 18. Возможно ли иметь две модели в одном представлении asp.net mvc
- 19. ASP.NET MVC 4, несколько моделей в одном представлении?
- 20. ASP.NET MVC 4 - несколько моделей в одном представлении
- 21. ASP.net MVC, отображающий результаты из двух таблиц в одном представлении
- 22. Обработка нескольких действий формы на одном представлении?
- 23. MySQL Объединение нескольких таблиц в представлении
- 24. Редактирование/просмотр нескольких моделей в одном представлении
- 25. Объединение 2 различных выходов графа в R на одном графике
- 26. Рекурсия в представлении ASP.NET MVC
- 27. Объединение нескольких запросов в одном в доступе
- 28. Несколько динамических форм в одном представлении MVC
- 29. Лучший способ обработки нескольких моделей в одном представлении
- 30. MVC Несколько моделей в одном представлении
Спасибо, Джон ... теперь я действительно получаю то, что такое ViewModel. – kdmurray
Это замена контроллера? Если да, то где это происходит в структуре папок asp.net? В новой папке с именем ViewModels? – George
@George ... это не заменит контроллер, это будет использоваться действием контроллера, чтобы заполнить представление, вы можете поместить его в любую папку в структуру папок, я обычно помещал их в папку ViewModels. –