例如:假设我想返回一个显示汽车列表的视图,并显示您所在地区的一部分经销商.这是两个脱节的数据.
我的视图继承了以下汽车列表:
public partial class CarLot : ViewPage> { }
现在从控制器我可以返回如下视图:
return View(Model.GetCars());
为了呈现这一点,我的标记看起来如下所示:
<% foreach (Car myCar in ViewData.Model) {some html here} %>
这照顾了汽车清单,但我的问题是,我该如何处理经销商名单?视图是否支持多重继承,或者我是否必须再次从标记中获取模型?我知道可以这样做,但我不确定这是否是最好的做法.
创建数据传输对象
public class CarLotViewModel { public ListCars { get; set; } public List NearbyDealers { get; set; } }
设置视图以使用视图模型:
public partial class CarLot : ViewPage{ }
然后在你的控制器中:
var model = new CarLotViewModel(); model.Cars = GetCars(); model.NearbyDealers = GetDealers(); return View(model);
然后枚举视图中的每个集合:
<% foreach (Car car in ViewData.Model.Cars) { %> .... <% foreach (Dealer dealer in ViewData.Model.NearbyDealers) { %>