【发布时间】:2014-08-28 11:29:58
【问题描述】:
我一直在努力更好地掌握模型和视图模型的设计。对于大多数人来说,这可能是一个愚蠢的问题。首先,这是我的模型:
public class Cities
{
[Key]
public int CityID { get; set; }
public string City { get; set; }
public int Miles { get; set; }
public string State { get; set; }
public string ZipCode { get; set; }
}
现在,当我在表示层中创建 ViewModel 时,我可以只使用 IEumerable 来传递我的 Cities 表中的所有记录吗:
public class CitiesViewModel
{
public IEnumerable<Cities> Cities { get; set; }
}
然后我可以用我的控制器遍历所有记录:
[HttpGet]
public ActionResult List()
{
CitiesViewModel model = new CitiesViewModel
{
Cities = repository.Cities
.OrderBy(p => p.City)
};
return View(model);
}
或者,我是否应该只传递我希望我的视图可以访问的唯一数据:
public class CitiesViewModel
{
//public IEnumerable<Cities> Cities { get; set; }
public string City { get; set; }
public string State { get; set; }
}
【问题讨论】:
-
检查one.beat.consumer's answer here,它应该会给你一个想法。
-
我认为纯粹主义者会认为后者是更好的选择,但我认为两者都可以接受。
-
是的,视图模型应该只提供视图所需的信息。
-
@MarcosVqzdeRdz 感谢您的参考。很棒的信息!
标签: c# asp.net-mvc design-patterns mvvm viewmodel