【发布时间】: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