У меня есть одна сложная проблема. Мне нужно добавить несколько элементов внутри одной формы в приложении 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; }
}
Я понимаю, как сохранить ввод пользователя, если это только для модели фильма с простыми линиями, подобными этому, в форме:
@Html.EditorFor(model => model.Movie.Name)
Проблема заключается в том, что пользователь должен также иметь возможность добавлять несколько языков для фильма внутри формы (модель MovieLanguages). Таким образом, при отображении формы пользователь будет иметь что-то вроде этого:
Пользователь будет иметь раскрывающийся список языков и, когда он выбирает язык из списка и нажимает кнопку Добавить язык, язык будет отображаться ниже , Когда он нажимает кнопку Сохранить фильм, все выбранные языки также должны быть сохранены в базе данных в таблице MovieLanguages. Как справиться с этой проблемой, когда идентификатор фильма будет известен только после его сохранения в базе данных? Я не уверен, как решить проблему с несколькими моделями в представлении и контроллере, когда есть это отношение ко многим. Есть идеи? :)
Спасибо.
Спасибо, но я до сих пор не совсем понимаю, что мне нужно делать. На этой первой ссылке есть только список с предопределенным количеством значений, отображаемых для редактирования. Я был бы признателен, если бы вы могли объяснить это немного. Я не понимаю, как я мог использовать это, чтобы сохранять языковые временные, а затем сохранять их в базу данных при сохранении фильма. – Cristiano
Вам не нужно временно сохранять языки на сервере - вы сохраняете их на входах в клиентском html. – archil