c# - 为什么我的 viewModel 对象返回 null?
问题描述
我有 2 个类,Message 和 User,并且我创建了一个包含这两个类的 viewModel:
public class User
{
[Key]
public int UserId { get; set; }
public string Username { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public ICollection<Message>? Messages { get; set; } = new Collection<Message>();
}
public class Message
{
[Key]
public int MessageId { get; set; }
public string MessageContent { get; set; }
public DateTime DateCreated { get; set; }
}
public class NewMessageViewModel
{
public Message Message { get; set; }
public User? Sender { get; set; }
public User? Receiver { get; set; }
}
但是,当我尝试通过控制器传递 viewModel 并取回一些 json 时,它会出现错误'System.NullReferenceException: 'Object reference not set to an instance of an object.'
我没有正确地通过某些事情,我知道,但对于我的生活,我可以看到什么是错的!我太接近客观性了,所以有人可以指出我犯的愚蠢错误吗?
我的控制器动作:
[Route("NewMessageViewModel")]
[HttpGet]
public NewMessageViewModel GetNewMessageViewModel()
{
NewMessageViewModel newmv = new NewMessageViewModel
{
Message = { MessageContent = "HelloWord", MessageId = 1, DateCreated = DateTime.Now},
Receiver = { UserId = 1, Messages = null, FirstName = "Andy", LastName = "Stav", Username = "AndyStav" },
Sender = { UserId = 2, Messages = null, FirstName = "Test", LastName = "Test", Username = "Test" }
};
return newmv;
}
解决方案
您忘记初始化消息和用户类:
NewMessageViewModel newmv = new NewMessageViewModel
{
Message = new Message { MessageContent = "HelloWord", MessageId = 1, DateCreated = DateTime.Now },
Receiver = new User { UserId = 1, Messages = null, FirstName = "Andy", LastName = "Stav", Username = "AndyStav" },
Sender = new User { UserId = 2, Messages = null, FirstName = "Test", LastName = "Test", Username = "Test" }
};
return newmv;
推荐阅读
- c++ - 如果构造函数抛出 RAII 和成员?
- java - 如何从更深的层将对象绑定到数组 1
- python - 为什么 a.insert(0,0) 比 a[0:0]=[0] 慢得多?
- ant - 如何显示蚂蚁模式集
- java - Android Studio 导入新模块时项目不显示在项目结构中
- javascript - 将块作用域中的变量值用作全局作用域中的简单变量 - JAVASCRIPT。在火灾商店
- geometry - 几何找到从正方形的边缘到该正方形内最大可能圆的边缘的距离
- c - C 中的内存管理 - Linux 内核
- php - 在 php 中使用 for each 迭代 mysql 查询
- r - 将一个 sf 对象导出到多个 shapefile