对象引用未设置为对象错误MVC3的实例

时间:2012-04-24 10:34:31

标签: asp.net-mvc asp.net-mvc-3 entity-framework actioncontroller

我有一个ajax帖子,它提供了用户输入表单的值。

在我的数据库中,我有两个正在使用的实体,我首先使用模型。 但是,在尝试执行此操作时,我得到“对象引用未设置为对象的实例”错误:

  

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

2 个答案:

答案 0 :(得分:5)

您必须初始化SelectedQuestion媒体资源:

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

答案 1 :(得分:1)

如果我是你,我还会在我的模型中添加一个外键属性SelectedQuestionId。然后,您可以设置此值,并在SaveChanges或从存储库请求对象时自动检索导航属性。