У меня есть 2 модели (Кино и Актеры)
Я уже могу получить список фильмов, содержащих выбранных актеров. И я могу вывести все это через Html.DisplayNameFor. Но я хочу использовать DDL для вывода актеров Icollection вместо цикла с подэлементом в @Html.DisplayNameFor(model => model.Actors). Поэтому мне нужно, чтобы раскрывающийся список соответствовал актеру SelectedList. вывод по умолчанию - все / И если я выбираю конкретный параметр фильма, такой как Жанр или Бюджет, то DDL с актерами должен соответствовать этому.
public class Movie
{
public int MovieID { get; set; }
public string Title { get; set; }
public string Date { get; set; }
public int Budget { get; set; }
public string Genre { get; set; }
public virtual ICollection<Actor> Actors { get; set; }
}
public class Actor
{
public int ID { get; set;}
public string Name { get; set; }
public virtual ICollection<Movie> Movies { get; set; }
}
Я понимаю вывод с
<th>
@Html.DisplayNameFor(model => model.Genre)
</th>........................
<th>.........................
@Html.DisplayNameFor(model => model.Actors)
</th>...............
С коллекцией Actors
мне нужна другая форма для каждой строки моего вывода. Потому что в каждом фильме может быть много актеров. Если у актеров слишком много столбцов, как я могу это скрыть? Или вывести какое-то количество с возможностью его расширения? Я решил добавить их в DropDownList. Возможно, хорошей альтернативой будет какая-то новая форма AJAX или элемент asp.net.
Следовательно, у меня есть MovieController:
if (!String.IsNullOrEmpty(SearchActor))
{
Movie = Movie.Where(c => c.Actors.Any(i => i.Name.Contains(SearchActor)));
}
return View(Movie.ToList());
Он возвращает фильм. Как я могу получить Actors.Name
(строку) из Movie
, соответствующих ICollection Актера?
Я бы добавил эту строку в DDL.