1

ユーザーがフォームに入力した値から値を取得する ajax 投稿があります。

私のデータベースには、使用されている 2 つのエンティティがあり、最初にモデルを使用します。ただし、これを実行しようとすると、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」というエラーが表示されます。

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();

        }

私の選択したQuestionViewModel:

   public class SelectedQuestionViewModel
{

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

}

私のデータベースモデル

ここに画像の説明を入力

4

2 に答える 2

5

SelectedQuestionプロパティを初期化する必要があります。

var goalCardQuestionAnswer = new GoalCardQuestionAnswer();
goalCardQuestionAnswer.SelectedQuestion = new SelectedQuestion();
于 2012-04-24T10:37:50.313 に答える
1

私があなたなら、外部キープロパティSelectedQuestionIdもモデルに追加します。次に、この値を設定すると、SaveChanges時、またはリポジトリからオブジェクトをリクエストしたときに、ナビゲーションプロパティが自動的に取得されます。

于 2012-04-24T10:42:56.487 に答える