【发布时间】:2013-05-24 18:58:19
【问题描述】:
我目前有一个带有主页的应用程序,它根据“创建”或输入数据库的日期显示十部电影的列表。我还想根据每部电影的评分显示前十部电影的列表。有没有办法传入另一个模型或改变我当前的 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);
}
以及传入的 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; }
}
【问题讨论】:
-
您可以组合包含两个结果集的单个视图模型。这在读/写场景中变得有点棘手,但对于显示信息来说非常简单。
标签: c# asp.net-mvc-4 entity-framework-5