【发布时间】:2013-03-28 20:20:10
【问题描述】:
我的问题是:如何发送多个@model IEnumerable<MvcMovie.Models.Movie>?
例如 - 我想从 Controler 发送到 View:db.Movies.ToList() 和 db.Letters.ToList()。怎么寄?
以及如何在我的视图中分开:IEnumerable with Movies 和 IEnumerable with Letters?
【问题讨论】:
我的问题是:如何发送多个@model IEnumerable<MvcMovie.Models.Movie>?
例如 - 我想从 Controler 发送到 View:db.Movies.ToList() 和 db.Letters.ToList()。怎么寄?
以及如何在我的视图中分开:IEnumerable with Movies 和 IEnumerable with Letters?
【问题讨论】:
我的问题是:如何发送超过 1 个 @model IEnumerable?
通过使用视图模型:
public class MyViewModel
{
public FooBarModel TheFooBar { get; set; }
public IEnumerable<Movie> Movies { get; set; }
}
然后让您的控制器将此视图模型返回给视图:
public ActionResult SomeAction()
{
var model = new MyViewModel();
model.Movies = ...
model.TheFooBar = ...
return View(model);
}
最后你的视图将被强类型化到视图模型中:
@model MyViewModel
您将能够访问其属性。
【讨论】:
@foreach (var item in Model) 只处理信件或电影?
@foreach (var movie in Model.Movies).
最简单的解决方案是创建一个包含Movies 和Letters 列表的Wrapper 类。
【讨论】: