asp.net mvc viewmodels和在模型类中获取数据

时间:2012-01-11 13:36:54

标签: asp.net-mvc asp.net-mvc-3 viewmodel

我对在视图模型中提取数据有疑问。

例如我有viewmodel:

public class EmployeeCreateVM
{
    public Employee Employee { get; set; }
    public List<EmployeeState> EmployeeStates { get; set; } // dropdownlist data
    public List<EmployeeType> EmployeeTypes { get; set; } // dropdownlist data

    public EmployeeCreateVM()
    {
        EmployeeStates = ...
        EmployeeType = ...
    }
}

我的问题是关于设计视图模型,特别是获取数据。 对于我当前的项目,我从控制器获取数据,例如:

[Get]
EmployeeCreateVM model = new EmployeeCreateVM();
model.EmployeeStates = _repository....

[Post] - again
model.EmployeeStates = _repository....

直接从视图模型类获取数据是不好的做法吗?

由于

1 个答案:

答案 0 :(得分:1)

是的,因为它违反了关注点的分离。如果您以后需要更改数据访问方法,则它将不再位于单个位置(控制器),而是位于使用该存储库的每个视图模型中。

这里有更多的讨论: What to put in your ViewModel