例如: 假设我想要返回显示汽车列表的视图,并显示您所在地区的一部分经销商。这是两个脱节的数据。
我的视图会继承以下内容的汽车列表:
public partial class CarLot : ViewPage<List<Cars>>
{
}
现在,从控制器,我可以返回视图,如下所示:
return View(Model.GetCars());
为了呈现这一点,我的标记看起来如下所示:
<% foreach (Car myCar in ViewData.Model)
{some html here}
%>
这会处理汽车列表,但我的问题是,如何处理经销商列表? 视图是否支持多重继承,或者我是否必须再次从标记中获取模型?我知道可以这样做,但我不确定这是否是最好的做法。
答案 0 :(得分:18)
创建数据传输对象
public class CarLotViewModel
{
public List<Car> Cars { get; set; }
public List<Dealer> NearbyDealers { get; set; }
}
设置视图以使用视图模型:
public partial class CarLot : ViewPage<CarLotViewModel>
{
}
然后在你的控制器中:
CarLotViewModel 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) { %>
答案 1 :(得分:0)
设置视图以使用视图模型:
公共部分类CarLot: ViewPage {}
MVC 1.0中没有代码隐藏。如何设置视图以使用视图模型?