遍历 ViewModel 中的实体列表

Looping through list of entities in a ViewModel

我的一个实体 Create 页面需要包含其他实体的列表,在本例中 Timetable 创建视图需要包含 Station 实体的列表。为此,我创建了自己的 ViewModel:

public class TimetablesCreateViewModel
{
    public Timetable Timetable { get; set; }
    public IEnumerable<Station> Stations { get; set; }
}

然后我将 TimetablesController class 中的 Create 方法更改为:

public ActionResult Create()
{
    TimetablesCreateViewModel model = new TimetablesCreateViewModel
    {
        Timetable = new Timetable(),
        Stations = db.Stations.ToList()
    };

    return View();
}

然后我修改了我的 Create.cshtml 页面以使用 @model MyApp.ViewModels.TimetablesCreateViewModel,并且我正在尝试像这样遍历 Stations:

@foreach (var s in Model.Stations)
{
    <p>@s.Name</p>
}

当我加载 /Timetables/Create 页面时,我得到 NullReferenceException:

An exception of type 'System.NullReferenceException' occurred in App_Web_lqnuresu.dll but was not handled in user code

Additional information: Object reference not set to an instance of an object.

我认为唯一会导致这种情况的是,如果没有任何站点被填充到 Model.Stations,但事实并非如此,它成功地检索了数据库中的所有站点。

您需要 return 具有视图的模型:

return View(model);