【发布时间】:2012-01-29 16:55:22
【问题描述】:
上周,我下载了一个用 ASP.NET MVC3 开发的博客引擎的源代码。在分析代码时,我注意到他们使用不同的方式来检索填充视图模型的数据。
以下是“post”视图模型的示例:
控制器:
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);
}
如您所见,存储库是直接在视图模型中(在构造函数中)实例化的。这是正确的方法吗?
通常,我使用业务层,最终使用如下服务层: 控制器>>业务>>存储库
感谢您的建议。
【问题讨论】:
标签: asp.net-mvc