Razor Pages с EF Core в ASP.NET Core - обновление связанных данных - 7 из 8 с помощью c # - PullRequest
0 голосов
/ 10 февраля 2019

Я опытный программист Visual Basic, пытающийся изучать Visual Studio с помощью Razor Pages.Я следовал учебному пособию и не могу обойти ошибку.Когда я добавляю курсы, преподаваемые преподавателем (следующий код), и нажимаю «Сохранить», я получаю сообщение об ошибке

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 голосов
/ 29 апреля 2019

Если эта проблема все еще беспокоит вас, возможно, это из-за того, что вы неправильно скопировали модели, поэтому перепроверьте свои модели (5 из 8).

Вы можете попробовать ввести это внутри метода OnPostAsync, чтобы получить больше информации о нем,

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