1

У меня есть запись ajax, которая дает мне значения, исходящие от того, что пользователь ввел в мою форму.Ссылка на объект не установлена ​​в экземпляр ошибки объекта MVC3

И в моей базе данных У меня есть две темы, которые используются, и я сначала использую модель. Однако Im получение «ссылка на объект не указывает на экземпляр объекта» ошибка при попытке сделать это:

goalCardQuestionAnswer.SelectedQuestion.Id = selectedQuestionViewModel.QuestionID;

Это мой контроллер пост:

[HttpPost] 
    public bool AnswerForm(SelectedQuestionViewModel selectedQuestionViewModel) 
    { 
     if (ModelState.IsValid) 
     { 
     var goalCardQuestionAnswer = new GoalCardQuestionAnswer(); 

     goalCardQuestionAnswer.SelectedQuestion.Id = selectedQuestionViewModel.QuestionID; 
     goalCardQuestionAnswer.Comment = selectedQuestionViewModel.Comment; 
     goalCardQuestionAnswer.Grade = selectedQuestionViewModel.Grade; 

     answerNKIRepository.SaveQuestionAnswer(goalCardQuestionAnswer); 
     answerNKIRepository.Save(); 

     } 

Мой SelectedQuestionViewModel:

public class SelectedQuestionViewModel 
{ 

    public int? Grade { get; set; } 
    public string Comment { get; set; } 
    public string SelectedQuestionText { get; set; } 
    public int QuestionID { get; set; } 

} 

Моя модель базы данных

enter image description here

ответ

5

Вы должны инициализировать SelectedQuestion свойство:

var goalCardQuestionAnswer = new GoalCardQuestionAnswer(); 
goalCardQuestionAnswer.SelectedQuestion = new SelectedQuestion(); 
+0

Желательно в конструкторе GoalCardQuestionAnswer ... – Dante

+0

Спасибо большое. Небольшая мисс, но никогда бы не поняла это без посторонней помощи. –

+0

Я больше не получаю сообщение «Ссылка на объект, не установленную в экземпляр объекта». Вместо этого я получаю «Объекты в« NKImodeledmxContainer.SelectedQuestion »участвуют в отношениях« QuestionSelectedQuestion ». 0 связанных« Вопрос »был найден. 1« Вопрос »ожидается». Когда я пытаюсь сэкономить. Любая идея, почему и как решить эту проблему? –

1

Если на вашем месте я бы также добавить внешний ключ SelectedQuestionId свойство моей модели. Затем вы можете установить это значение, и ваше свойство навигации будет автоматически восстановлено при помощи SaveChanges или при запросе объекта из вашего репозитория.