2011-07-27 7 views
2

"StudentID"와 "StudentName"을 기본 키로 설정 한 Student 데이터 모델 (Entity Framework)이 있습니다. StudentID는 Int 유형이고 StudentName은 String 유형입니다. null 참조 예외 오류

나는 강력한 형식의 뷰를 생성,하지만 그것을 실행할 때 나는 다음과 같은 오류 얻을 : 여기
public ActionResult Index() 
    { 

     ViewData.Model = student.StudentTable; 
     return View(); 
    } 

가보기입니다 :

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object. 
여기
Source Error: 


Line 10:   <tr> 
Line 11:    <td> 
Line 12:     <%= Html.Encode(item.StudentID) %>** 
Line 13:    </td> 
Line 14:    <td> 

내 컨트롤러 액션입니다 :

<%@ Page 
    Language="C#" 
    Inherits="System.Web.Mvc.ViewPage<IEnumerable<Student.Models.StudentTable>>" %> 

<html> 
<head runat="server"> 
</head> 
<body> 
    <table> 

    <% foreach (var item in Model) { %> 

     <tr> 
      <td> 
       <%= Html.Encode(item.StudentID) %> 
      </td> 
      <td> 
       <%= Html.Encode(item.StudentName) %> 
      </td> 
     </tr> 

    <% } %> 

    </table> 
</body> 
</html> 
+1

컨트롤러 작업 방법의 코드를 표시 할 수 있습니까? – brodie

+1

@brodie 예. 위의 내용을 추가했습니다. – user793468

+0

보기를 표시 할 수 있습니까? – frennky

답변

1

에보기 코드를 변경해야합니다. 학생의 테이블 레코드 당 하나의 StudentID이있는 경우, 당신은 단순히 전달해야 model.StudentID

컨트롤러

public ActionResult Index() 
{  
    var model = student.StudentTable; 
    return View(model); 
} 

영문

<% foreach (var item in Model) { %> 

    <tr> 
     <td> 
      <%= Html.Encode(item.StudentID) %> 
     </td> 
     <td> 
      <%= Html.Encode(item.StudentName) %> 
     </td> 
    </tr> 

<% } %> 
+0

여전히 동일한 오류가 발생합니다. 컨트롤러와 뷰를 추가했습니다. – user793468

+0

'ViewData.Model = student.StudentTable;에 중단 점을 두십시오. 자신의 레코드에서'StudentID'가'null'인지 확인하십시오. 또한 ViewData를 사용하는 대신보기로 모델을 전달하는 것이 좋습니다 ...'return View (model); ' –

+0

예, 신원 키로 설정 한 StudentID에 대한 null 값이 몇 개 있습니다. 어떻게 극복합니까? <% = Html.Encode (model.StudentID) %> StudentTable의 모든 학생을 어떻게 얻는 지, for 루프가 필요하지 않습니까? – user793468

0

이것이 예외가 발생하는 경우 item 변수는 null이어야합니다. 그것이 어떻게 채워지는지주의 깊게 관찰 할 필요가 있습니다. 모델이 null이면 컨트롤러 동작에 디버거를 던져서 작동하지 않는 이유를 알아낼 수 있어야합니다.

+0

예, 그게 바로 그 행입니다. – user793468

0

당신은 ActionMethod에서 유효보기 데이터를 전달하는 ... 몇 가지가 될 수 있을까? 뷰에 @model을 정의 했습니까? student.StudentTable 가정

내 생각 엔 itemnull 점이다, StudentID 속성을 하나의 객체가 어떤 추가 정보가 없으면 Model.StudentID

+0

예, 필자는 컨트롤러 액션을 추가했습니다. – user793468

1

나는 항목이 널 (null) 인 경우에 당신이 같으면, 널 의심 루프 내부에 들어 가지 않습니다. 중단 점을 설정하고 항목을 검사하면 아마도 생각했던 것과 다를 수 있습니다.