我的ViewModel的构造函数应该填充ViewModel的数据吗?

时间:2010-08-10 21:48:53

标签: c# asp.net-mvc viewmodel

我的ViewModel是否应该封装填充它所需的服务?

目前我正在按如下方式进行:

public PartialViewResult Companies(SearchViewModel search)
{
    search.Summary = _entitySearchService.GetSearchDataSummary(search.SearchExpression);
    search.PagedCompanies = _companyService.GetPagedEntities<Company>(search.SearchExpression);

    return PartialView(search);
}

但是如果SearchViewModel在其构造函数中填充了这些属性呢?我可以让StructureMap将接口传递给服务。这是ViewModel的有效用途吗?

2 个答案:

答案 0 :(得分:3)

查看这段精彩视频Put your controller on a diet。它涵盖了您正在寻找的东西,甚至更多。

答案 1 :(得分:1)

不,不要这样做是因为你要在不同的视图模型中重复相同类型的属性,请从这里查看示例asp.net MVC项目:http://valueinjecter.codeplex.com