1
上週,我下載了在ASP.NET MVC3中開發的博客引擎的源代碼。在分析代碼時,我注意到他們使用了不同的方式來檢索填充視圖模型的數據。讓存儲庫直接在視圖模型中實例化
這裏是 '後' 視圖模型的示例:
控制器:
public ActionResult Details(string slug)
{
var model = new PostDetailsViewModel(UnitOfWork, slug);
return View(model);
}
視圖模型:
public PostDetailsViewModel(IUnitOfWork unitOfWork, string slug)
{
_repository = new PostRepository(unitOfWork);
Post = _repository.FindBySlug(slug);
}
存儲庫:
public Post FindBySlug(string slug)
{
return FindAll().SingleOrDefault(x => x.Slug == slug);
}
如您所見,存儲庫直接在視圖模型中(在構造函數中)實例化。這是一個正確的方式嗎?
通常情況下,我用這樣的業務層,最後一個服務層: 控制器>>業務>>庫
謝謝你的建議。
感謝Darin,這是我尋找的迴應:)我閱讀了一篇關於填充視圖模型的帖子(2個月前回復的地方),這對我來說似乎是一個更好的方法,所以我會這樣做。這裏是:http://stackoverflow.com/questions/7943039/how-are-you-populating-validating-your-viewmodels – Bronzato 2011-12-29 07:45:50