【问题标题】:Object reference not set to an instance of an object error MVC3对象引用未设置为对象错误 MVC3 的实例
【发布时间】:2012-04-24 10:34:31
【问题描述】:

我有一个 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; }

}

我的数据库模型

【问题讨论】:

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


    【解决方案1】:

    您必须初始化您的 SelectedQuestion 属性:

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

    【讨论】:

    • 非常感谢。一个小小的失误,但如果没有帮助就永远不会弄明白。
    • 我不再收到“对象引用未设置为对象错误的实例”消息。相反,我得到“‘NKImodeledmxContainer.SelectedQuestion’中的实体参与‘QuestionSelectedQuestion’关系。找到了0个相关的‘问题’。预计有1个‘问题’。”当我尝试保存时。知道为什么以及如何解决这个问题吗?
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2012-02-03
      • 1970-01-01
      • 2011-07-09
      • 2012-08-31
      • 2011-11-21
      • 2012-10-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多