• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

An unhandled exception occurred while processing the request. 에러가 발생합니다.

18.06.16 17:35 작성 조회수 1.08k

1

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

AspNetCore._Views_Home__TeacherTable_cshtml+d__0.MoveNext() in _TeacherTable.cshtml, line 12

Stack

Query

Cookies

Headers

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

AspNetCore._Views_Home__TeacherTable_cshtml+d__0.MoveNext() in _TeacherTable.cshtml

  1. @foreach (var teacher in Model.Teachers)

System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()

System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

Microsoft.AspNetCore.Mvc.Razor.RazorView+d__16.MoveNext()

Student.cshtml이라는 View에서는 TeacherStudentViewModel을 데이터를 받아 Teacher 리스트를 모두 출력해주게 되어있는데, Student.cshtml의 FORM으로 전달하는 Controller내의 액션 로직에는 View()만 리턴하여 Teacher 데이터부분이 NULL이라 에러가 뜨는 것 같습니다.

이런 경우에 어떻게 해결하나요?

하나의 View Page에 ViewModel이 필요할 수도 ViewModel이 필요없을 수도 있는 상황에는 어떻게 처리하나요?

답변 1

답변을 작성해보세요.

0

살짝 변형하셔서 진행하시는 것 같은데요. 제가 질문을 제대로 잘 파악하지는 못했지만 일단 바로 다음강좌에서 데이터를 다시 불러와서 뷰모델에 매핑하고 다시 View()에다가 리턴해줍니다. 뷰모델의 특징이 데이터를 활용하는데 있어서 자유도를 주기 때문에 어떤 페이지에서 데이터를 컨트롤러에서 받거나 다시 보내는 과정이 없다면 뷰모델을 안쓰셔도되구요 그런 과정이 있다면 뷰모델을 만드셔서 그 페이지에서 필요한 데이터만 뷰모델에 속성으로 추가하시면 됩니다.