複雑な問題が 1 つあります。ASP.NET MVC4 アプリケーションの 1 つのフォーム内に複数の項目を追加する必要があります。私は3つのモデルを持っています:
映画:
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 がデータベースに格納された後にのみわかる場合、この問題を処理するにはどうすればよいですか? この1対多の関係がある場合、ビューとコントローラーで複数のモデルの問題を解決する方法がわかりません。何か案は?:)
ありがとうございました。