我正在创建一个asp.net mvc4应用程序,它将根据用户输入的特定条件向用户询问一组问题。每个问题都存储在一个表格中,只有符合条件的问题才会显示给最终用户。
我正在使用一个viewmodel,它结合了来自几个不同表的信息。基本上它有一个问题列表和一个检查ID,将所有测试结合在一起。我的问题是填充视图模型的正确oo设计技术是什么。
用于填充viewmodel的方法/方法是否应驻留在viewmodel类本身中?基本上将实体传递给viewmodel并允许它填充自己。
如果您在实体中发送了一个新类,它将返回viewmodel?
或者有更好的方法来做到这一点。
答案 0 :(得分:2)
请考虑模型中的以下示例:
public List<Questions> Questions
{
get {
QuestionRepository Rep = new QuestionRepository();
return Rep.ObtainQuestions(ClientAge,ClientType)
}
}
public int ClientAge { get; set; }
public ClientTypeEnum ClientType { get; set; }
Questions属性中的getter包含所有逻辑。只要clientAge和ClientType属性具有有效值,就会填充问题列表。这样就可以避免在需要填充属性的每个操作方法中设置数据。
在示例中,我从存储库获取数据,但您可以从ORM实体框架或任何其他来源获取数据。
你可以google瘦名控制器一词,并阅读有关推荐和最佳实践的更多信息。