在ASP.NET MVC6 EF7创建视图上保存多对多关系数据

时间:2016-05-13 18:27:08

标签: asp.net many-to-many asp.net-core-mvc entity-framework-core

我是网络应用开发的新手。我使用ASP.NET MVC6 EF7创建简单的应用程序,向用户提供一组问题,这些问题在Pages上提供。为了重用,页面和问题需要有很多关系。

模型(我正在开发代码优先)的设置如对this onethis one等其他帖子的回复中所述。

// Data Model
public class Page
{
  public int PageID { get; set; } // Key
}
public class Question
{
  Public int QID { get; set; } // Key
  Public string Text { get; set; } // The question
}
public class PQJoin
{
    public int PageID { get; set; }
    public virtual Page page { get; set; }

    public int QID { get; set; }
    public virtual Question question { get; set; }
}

EF Scaffolded CRUD代码用作起点。

我想在设置时将多个问题链接到一个页面。在PagesController中:

ViewData["QuestionsID"] = new MultiSelectList(_context.Question, "QID", "Text");

并在Razor文件中创建列表框,如下所示:

@Html.ListBox("QuestionsID", null, htmlAttributes: new { @class = "form-control" })

到目前为止一切顺利。问题是我不确定如何从视图中返回新选择的问题并正确填充PQJoin表。推荐的方法是什么?

1 个答案:

答案 0 :(得分:0)

您需要从Page到PQJoin到问题的链接。

将此添加到Page和Question类:

public IList<PQJoin> PQJoins {get;set;}