【发布时间】:2021-07-29 10:52:37
【问题描述】:
首先,我是 c# 和 .net 的真正初学者,我是 10 天前开始的,所以 我试图显示一对多关系中的数据,但我有一个错误System.NullReferenceException:'对象引用未设置为对象的实例。(我检查了数据库中有数据表),我不明白为什么。我阅读了很多关于此的帖子,但它从来没有用过,我的代码与 microsoft doc 页面上的示例几乎相同,但我的不起作用。
型号
[Display(Name = "Formations")]
public virtual ICollection<Courses> Course { get; set; }
}
public class Courses
{
[Key]
public int CourseId { get; set; }
[Display(Name = "Formations")]
public string Course { get; set; }
public virtual Users users { get; set; }
}
控制器
public async Task<IActionResult> Details(int? id)
{
if (id == null)
{
return NotFound();
}
var users = await _context.Users
.FirstOrDefaultAsync(m => m.Id == id);
if (users == null)
{
return NotFound();
}
return View(users);
查看
@foreach (var item in Model.Course)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Course)
</td>
</tr>
}
【问题讨论】:
-
首先您需要找到 nullreference 异常的来源。然后你可以检查如何防止这种情况。看这里:stackoverflow.com/a/4660186/7968203
-
错误来自我在视图中的循环,如果它是你的意思。
-
这可能是因为课程属性没有加载。搜索用户时包括课程。
var users = await _context.Users.Include(x => x.Course) .FirstOrDefaultAsync(m => m.Id == id);
标签: c# asp.net-mvc