0

我有一个复杂的问题。我需要在 ASP.NET MVC4 应用程序的一个表单中添加多个项目。我有三个模型:

电影:

public class Movie
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }
    public string Title { get; set; }
    public string Description { get; set; }
    public int Duration { get; set; }
}

电影中的所有语言:

public class MovieLanguages
{
    [ForeignKey("Movie")]
    public int MovieId { get; set; }

    [ForeignKey("Language")]
    public int LanguageId { get; set; }

    public virtual Movie Movie { get; set; }
    public virtual Language Language { get; set; }
}

语:

public class Language
{
    public int Id { get; set; }
    public string Name { get; set; }
}

我了解如何保存用户的输入,如果它只是用于在表单中具有这样简单行的 Movie 模型:

@Html.EditorFor(model => model.Movie.Name)

问题是用户还应该能够在表单中为电影添加多种语言(模型 MovieLanguages)。因此,当显示表单时,用户会有这样的事情:

在此处输入图像描述

用户将有一个语言的下拉列表,当他从列表中选择一种语言并单击添加语言按钮时,语言将显示在下方。当他单击保存电影时,所有选择的语言也应保存到表 MovieLanguages 中的数据库中。当电影 id 仅在存储在数据库中后才知道时,如何处理此问题?当存在一对多关系时,我不确定如何解决 View 和 Controller 中的多个模型的问题。有任何想法吗?:)

谢谢你。

4

1 回答 1

0

您所需要的只是模型绑定到列表模型绑定到数组、列表、集合、字典。剩下的就是一点点 javascript 在Add Language点击时动态生成所需的 html。

于 2013-04-01T08:59:50.113 回答