Я хотел бы заполнить 2 divs в представлении с данными из 2 ViewModels, но у меня есть проблема.Как показать данные из двух ViewModels в одном представлении
Мои 2 ViewModels:
public class ChatLogsNameTimeViewModel
{
public UserProfile UserProfile { get; set; }
public string Message { get; set; }
public DateTime Time { get; set; }
}
public class UserProfile
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string UserName { get; set; }
public string Email { get; set; }
public bool IsOnline { get; set; }
public virtual ICollection<ChatLogs> ChatLogs { get; set; }
}
означает, что я хочу показать данные ChatLogsNameTimeViewModel в одном DIV в поле зрения и данных от UserProfile в другой DIV в поле зрения.
Это мой ViewModel, который использует оба ViewModels выше:
public class ChatLogsUsersViewModel
{
public IEnumerable<ChatLogsNameTimeViewModel> ChatLogs { get; set; }
public IEnumerable<UserProfile> Users { get; set; }
}
И это мой Index() действия в контроллере:
var chatLogs = db.getChatLog().ToList();
var users = dba.getOnlineUsers().ToList();
var view = new ChatLogsUsersViewModel(chatLogs, users);
return View(view);
Моя проблема заключается в том, что я не могу получить доступ к атрибутам ViewModel вообще.
Когда я создаю цикл Еогеаспа ввиду все, что я могу получить доступ к такому:
означает, что я не могу получить доступ атрибутов на все, чтобы напечатать их в Еогеаспе.
Я имею это в виду:
@model IEnumerable<Chat.Models.ChatLogsUsersViewModel>
Я предполагаю, что я не делаю что-то прямо в мой контроллер. У меня есть методы getChatLog()
и getOnlineUsers()
, реализованные в модели, они работают без проблем. Я просто не знаю, как заставить их работать вместе в одном представлении.
Если я сделать это я не могу Foreach путем сбора .. –
Вы должны иметь доступ к списку, используя Model._chatLogs и Model._users –
, вы правы. спасибо –