C# ASP.NET实体框架制作小测验

C# ASP.NET实体框架制作小测验,c#,asp.net,entity-framework,C#,Asp.net,Entity Framework,我是网络新手,真的被卡住了。我需要使用ASP.NET和实体框架制作QuizSystem。我首先使用数据库,我有这样的表 及 我正在尝试为问题创建视图,但问题是使用一些已经生成的变量作为答案,我只需要从下拉列表中选择它 [HttpPost] [ValidateAntiForgeryToken] public ActionResult Create([Bind(Include = "Text,AnswerID,ChapterID")] QuestionVariant questi

我是网络新手,真的被卡住了。我需要使用ASP.NET和实体框架制作QuizSystem。我首先使用数据库,我有这样的表

我正在尝试为问题创建视图,但问题是使用一些已经生成的变量作为答案,我只需要从下拉列表中选择它

[HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Create([Bind(Include = "Text,AnswerID,ChapterID")] QuestionVariant questionVariant)
    {
        if (ModelState.IsValid)
        {
            db.QuestionVariants.Add(questionVariant);
            db.SaveChanges();
            return RedirectToAction("Index");
        }

        ViewBag.ChapterID = new SelectList(db.Chapters, "ChapterID", "ChapterName", questionVariant.ChapterID);
        ViewBag.AnswerID = new SelectList(db.Variants, "VariantID", "Text", questionVariant.AnswerID);
        return View(questionVariant);
    }

是否可以在同一视图中创建问题和变体?如果是这样,控制器和视图应该是什么样子?不要只放-1,帮我提一些建议或任何有助于解决这个问题的东西。

我认为您的桌子设计需要一些调整。尝试将您的问题模型更改为=>

public virtual ICollection<QuestionVariants> QuestionVariants{ get; set; }

此外,您还可以阅读的“ForeignKey”和“一对多”部分。

QuestionVariants表示问题的答案?@Nico yes问题的可能答案您在问什么?当然你可以把它们放在同一个视图中。。。您已经展示了您的POST方法处理程序,视图将发送到哪里?ViewModels是您的朋友。创建一个单独的类(viewmodel)并包含要显示的字段(来自任何源),包括DropDownList值。例子
[ForeignKey("QuestionId")]    
public Question Question { get; set; }