在ASP.NET Core中具有EF Core的Razor Pages-更新相关数据-使用c#的8之7

时间:2019-02-09 21:25:14

标签: c# razor-pages

我是一位经验丰富的Visual Basic程序员,试图通过Razor Pages学习Visual Studio。我已按照本教程进行操作,无法克服错误。当我添加教师讲授的课程(以下代码)并单击“保存”时,出现错误

NullReferenceException: Object reference not set to an instance of an object.

ContosoUniversity.Pages.Instructors.Pages_Instructors_Edit.<ExecuteAsync>b__19_0() in Edit.cshtml
  foreach (var course in Model.AssignedCourseDataList)

这是我的代码

 </div> <div class="form-group">
  <div class="col-md-offset-2 col-md-10">
   <<tr>
      @{
       int cnt = 0;
       foreach (var course in Model.AssignedCourseDataList)
       {
         if (cnt++ % 3 == 0)
         {
          @:</tr><tr>
         }
         @:<td>

        <input type="checkbox"
          name="selectedCourses"
          value="@course.CourseID"
          @(Html.Raw(course.Assigned ? "checked=\"checked\"" : "")) />
          @course.CourseID @:  @course.Title
          @:</td>
         }
         @:</tr>
       }
    </table>
 </div>

但是我发现,如果我在课程分配(以下代码)之前删除了教师的办公地点,该错误就会消失。在创建讲师页面上会发生相同的问题。我只是无法弄清楚为什么一个或另一个可以工作,但不能同时工作。非常感谢您的帮助

  <div class="form-group">
      <label asp-for="Instructor.OfficeAssignment.Location" class="control-label"></label>
      <input asp-for="Instructor.OfficeAssignment.Location" class="form-control" />
      <span asp-validation-for="Instructor.OfficeAssignment.Location" class="text-danger" />
  </div>

1 个答案:

答案 0 :(得分:0)

如果此问题仍然困扰您,则可能是因为您没有正确复制模型,因此请重新检查模型,(5/8)。

您可以尝试在OnPostAsync方法中输入此内容,以获得有关它的更多信息,

if (!ModelState.IsValid)
{
   return BadRequest(ModelState);
}