我想用来自 2 个 ViewModel 的数据填充 View 中的 2 个 div,但我有一个问题。
我的 2 个视图模型:
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; }
}
这意味着我想在 View 的一个 div 中显示来自 ChatLogsNameTimeViewModel 的数据,在 View 的另一个 div 中显示来自 UserProfile 的数据。
这是我的 ViewModel,它使用了上面的两个 viewModel:
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 属性。
当我在视图中创建 foreach 循环时,我可以访问的是:
这意味着我根本无法访问属性以在 foreach 中打印它们。
我在视图中有这个:
@model IEnumerable<Chat.Models.ChatLogsUsersViewModel>
我假设我在控制器中没有做正确的事情。我有方法getChatLog()
并getOnlineUsers()
在模型中实现,它们单独工作没问题。我只是不知道如何让它们在一个视图中协同工作。