0

我正在创建一个 asp.net mvc4 应用程序,它将根据用户输入的特定标准向用户询问一组问题。每个问题都存储在一个表格中,只有符合条件的问题才会显示给最终用户。

我正在使用一个视图模型,它结合了来自几个不同表的信息。基本上,它有一个问题列表和一个检查 ID,可以将所有测试联系在一起。我的问题是填充视图模型的正确 oo 设计技术是什么。

填充视图模型的方法是否应该驻留在视图模型类本身中?基本上将实体传递到视图模型并允许它自行填充。

是否应该在实体中发送一个新类并返回视图模型?

或者有没有更好的方法来做到这一点。

4

1 回答 1

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 的实体框架或任何其他来源获取数据。

你可以在谷歌上搜索瘦控制器这个术语,并阅读更多关于推荐和最佳实践的信息。

于 2013-12-09T19:39:56.390 回答