你在視圖中放什麼?怎麼把你的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