在 ASP.NET Core Razor 页面中填充下拉列表时出现空引用异常

问题描述 投票:0回答:2

我是 ASP.Net core 的新手。我正在尝试从

Createmodel
模型填充类
Instructor
中的下拉列表,并获得“空引用”异常。

这是cshtml.cs文件中的代码:

public SelectList Instructors { get; set; }

public async Task OnGetAsync()
{
    var students = from s in _context.User_Profile
                   select s;

    if (!string.IsNullOrEmpty(SearchString))
    {
        students = students.Where(s => s.FirstName.Contains(SearchString));
    }

    UserProfile = await students.ToListAsync();

    var instructors = from i in _context.Instructor
                      orderby i.FirstName
                      select i;
       
    Instructors = new SelectList(instructors, "ID", "FirstName");
}

我的 cshtml 视图中有以下标记:

<div class="form-group">
    <label asp-for="Class_Info.Instructor" class="control-label"></label>
    <select asp-for="Class_Info.Instructor" class="form-control" asp-items="@Model.Instructors">
         <option value="">-- Select --</option>
    </select>
</div>

我收到错误:

@Model.Instructors

我遇到了这个异常 This Error

请指教...

c# asp.net-core razor-pages .net-6.0
2个回答
3
投票

我在这里拼错了字段名称:

Instructors = new SelectList(instructors, "ID", "FirstName");

更改为:

Instructors = new SelectList(instructors, "InstructorID", "FirstName");

它开始起作用了。 谢谢大家的帮助!!


0
投票

对于那些可能遇到此错误但检查了所有拼写的人。另一个例子是,在初始化

SelectList
时,您传递的是字段而不是属性。确保有这些 getter/setter。就这样!调试愉快! :P

© www.soinside.com 2019 - 2024. All rights reserved.