我有一个复杂的问题。我需要在 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 中的多个模型的问题。有任何想法吗?:)
谢谢你。