2014-10-24 1 views
-1

나는 말한다 오류가 내 컨트롤러에서이 모델"개체 참조가 개체의 인스턴스로 설정되지 않았습니다."

public class Task 
{ 
    public Task() { } 

    public Task(int CategoryID)  
    {   
     this.TaskID = CategoryID; 
    }  

    public int TaskID { get; set; } 
} 

public class student 
{  
    public List<Task> Task { get; set; }  
    public string Name { get; set; } 
    public int ID { get; set; } 
} 

있습니다 'Object reference not set to an instance of an object.'

student student = new student(); 
var TaskQuery = from q in db.tblTasks 
       select new 
       { 
        TaskID = q.TaskID,         
       }; 

qaTaskQuery = qaTaskQuery.OrderBy(x => x.TaskID); 

foreach (var StudentTask_ in TaskQuery) 
{ 
    student.Task.Add(new Task() //Getting error 
    { 
     TaskID = StudentTask_.TaskID 
    }); 
} 

내 코드에 어떤 문제가 있는지 알려주세요은?

답변

3

Youy는 List<Task> 인스턴스화되지 않은 : 당신은 당신이 그것에 무언가를 추가하기 전에 작업 목록을 초기화해야

public class student 
{  
    public List<Task> Task { get; set; }  
    public string Name { get; set; } 
    public int ID { get; set; } 

    public Student() 
    { 
    this.Task = new List<Task>(); 
    } 
} 
2

:

student.Task = new List<Task>(); 
foreach (var StudentTask_ in TaskQuery) 
{ 
    student.Task.Add(new Task() //Getting error 
    { 
    TaskID = StudentTask_.TaskID 

    }); 
} 

하거나 생성자에서이 작업을 수행 할 수 있습니다 Student 클래스의 :

public class student 
{  
    public student() 
    { 
     Task = new List<Task>(); 
    } 
    public List<Task> Task { get; set; }  
    public string Name { get; set; } 
    public int ID { get; set; } 
} 
관련 문제