我有2个模特(电影和演员)
我已经可以检索包含所选Actors的Movie列表。我可以通过Html.DisplayNameFor输出所有内容。但我想在@Html.DisplayNameFor(model => model.Actors)中使用DDL输出Icollection Actors而不是subitem循环。所以我需要dropdownlist对应于SelectedList Actor。默认输出是全部/如果我选择特定的电影参数,这样的流派或预算比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
集合,我的输出的每一行都需要另一个表单。因为每部电影都可以有很多演员。
如果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());
它会返回一部电影。如何从对应于Actor ICollection的Actors.Name
中检索Movie
(字符串)?
我会将此字符串添加到DDL。
答案 0 :(得分:1)
试试这个
var actors = Movie.Where(c => c.Actors.Any(i => i.Name.Contains(SearchActor))).SelectMany(i => i.Actors);