【问题标题】:Getting null reference exception when populating dropdown list in ASP.NET Core Razor Pages在 ASP.NET Core Razor 页面中填充下拉列表时出现空引用异常
【发布时间】:2022-01-12 04:35:33
【问题描述】:

我是 ASP.Net 核心的新手。我正在尝试从Instructor 模型填充类Createmodel 中的下拉列表并获得“空引用”异常。

这是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

我遇到了这个异常

请指教...

【问题讨论】:

  • 您的控制器操作中有return View(*MODEL_OBJECT*); 行吗?换句话说,您实际上是在将模型传递给视图吗? ...请显示更多代码。
  • @rfmodulator:这是一个 Razor 页面——不是“经典”MVC 方法——没有单独的控制器。 Razor 页面本身充当控制器。
  • @Reet:当您调试时 - 您是否在 var instructors 中获得任何值??
  • @rfmodulator: 那么你应该熟悉 ;-) docs.microsoft.com/en-us/aspnet/core/razor-pages/…
  • @marc_s 你是对的。但现在我知道 razor-pages 标签的用途了。 :)

标签: c# asp.net-core razor-pages .net-6.0


【解决方案1】:

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

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

改成:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-07
    • 2019-04-09
    • 2016-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多