I am building a ToDo list app with ASP.NET Core Razor Pages and I am using EF Core.
I have a model that is ToDo
public class ToDo
{
    public int Id { get; set; }
    public string Title { get; set; }
    public bool IsCompleted { get; set; }
}
Heres PageModel:
public class IndexModel : PageModel
{
    public IEnumerable<ToDo> ToDos { get; set; }
    // constructor and DI code omitted 
    public async void OnGet()
    {
        ToDos = await _context.ToDos.ToListAsync();
    }
}
Here's razor page that uses this:
@page
@model IndexModel
@{
    Layout = "_Layout";
}
<div>
    @foreach(var todo in Model.ToDos)
     {
        <h4>@todo.Title</h4>
        <p>Is Completed: @(todo.IsCompleted ? "Yes" : "No")</p>
     }
</div>
When I visit this page I get System.NullReferenceException at Model.ToDos
However, when I change OnGet method to use ToList() instead:
public void OnGet()
{
    ToDos = _context.ToDos.ToList();
}
Everything works perfectly.
Why can't I use ToListAsync()
 
     
    