Ron*_*lor 2 c# asp.net-mvc-4 entity-framework-5
我目前有一个带有主页的应用程序,该主页根据它们"创建"的日期显示十个电影的列表,或者输入到数据库中.我还想根据每部电影的评级显示前十部电影的列表.有没有办法传入另一个模型或改变我当前的ViewModel来做到这一点?这是我的家庭控制器的索引部分:
public ActionResult Index()
{
var model =
_db.Movies
.OrderByDescending(m => m.DateEntered)
.Take(10)
.Select(m => new MovieListViewModel
{
Id = m.Id,
Title = m.Title,
Genre = m.Genre,
ReleaseDate = m.ReleaseDate,
CountOfReviews = m.Reviews.Count()
});
return View(model);
}
Run Code Online (Sandbox Code Playgroud)
传入的ViewModel:
public class MovieListViewModel
{
public int Id { get; set; }
public string Title { get; set; }
public string Genre { get; set; }
[Display(Name="Year Released")]
public DateTime ReleaseDate { get; set; }
public int CountOfReviews { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
创建一个包含两个列表的模型:
public class MovieListViewModel
{
public List<MovieModel> Top10ByCreated { get; set; }
public List<MovieModel> Top10ByRating { get; set; }
}
public class MovieModel
{
public int Id { get; set; }
public string Title { get; set; }
public string Genre { get; set; }
[Display(Name="Year Released")]
public DateTime ReleaseDate { get; set; }
public int CountOfReviews { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后在你的控制器中:
var model = new MovieListViewModel();
model.Top10ByCreated = ...
model.Top10ByRating = ...
return View(model);
Run Code Online (Sandbox Code Playgroud)
在您的视图中,使用MovieListViewModel您的模型并根据需要使用您的两个列表.