Я могу согласиться с тем, что @Paul только что ответил ...
Примеры использования, подобные этим, лучше обрабатываются с действиями контроллера, которые возвращают частичное представление, в котором вы будете отображать информацию пользователя.Вы бы отправили весь экземпляр UserObject (или его представление ViewModel) в View и имели бы строго типизированный View для этого класса.Затем, если это все еще будет представлять проблему с производительностью, вы можете кэшировать выходные данные действия контроллера, используя атрибуты OutputCache для действия.Это предпочтительный способ работы в ASP.NET MVC.
Если, однако, у вас есть страница, на которой вам нужно много информации из разных объектов бизнес-доменов, вы можете создать составные классы View Model, например, так::
public class DashboardViewModel
{
public UserObject User { get; set; }
public BusinessData BizData { get; set; }
public FirmObject Firm { get; set; }
}
На странице просмотра вы начинаете с этой строки
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MyNamespace.DashboardViewModel>" %>
, затем вы можете отрисовывать что-либо из DashboardViewModel, которое вы отправили на страницу, следующим образом:
<%: Model.User.Firstname %>
или
<%: Model.BizData.SalesTotal %>
Я просто придумываю это здесь, но это, как правило, так и должно быть.