你在视图中放什么?怎么把你的ViewModel
最近blog从Scott Hanselman有关使用一个特殊的模型绑定,方便测试使我思考如下: 你放什么在你的控制器逻辑构建视图模型,哪些应放在有何看法?他所做的是这样的:
var viewModel = new DinnerFormViewModel {
Dinner = dinner,
Countries = new SelectList(PhoneValidator.Countries, dinner.Country)
};
return View(viewModel);
现在,我使用将数据传递给我的看法相同的方式,但我不确定他是如何与这些国家的房地产交易。您可以争辩双方: 在SelectList中包装国家/地区列表为视图准备数据,就像您创建视图模型DTO来传递数据一样。另一方面,它不知何故感觉就像是在专门处理要在下拉列表中使用的数据,限制了视图处理来自控制器的数据的方式。 我觉得这是关于视图和控制器之间关注点分离的一个灰色区域,我不能真正决定走哪条路。有没有这方面的最佳做法? PS:为了简单起见,我们假设默认的ASP.NET MVC上下文,所以基本上你是开箱即用的项目。默认视图引擎和所有爵士乐。
是的,我认为你是对的。如果在视图中需要另一个国家列表的代表,你基本上会为此创建另一个视图DTO,对吧? – 2009-02-08 23:47:28